pgadmin 4 v4.28 keeps loading
UPDATED ANSWER
PGAdmin has been tracking this as bug 5996. In it, they recommend the following solution:
You can add the following lines to the "config_distro.py" and restart the pgAdmin 4 server:
import mimetypes mimetypes.add_type('text/javascript', '.js')
The above workaround should work for you.
They also mention:
In the next release, we're looking to include that into the code, so users don't have to do it themselves.
But the answer to your question, the
config_distro.py
can be overwritten in the subsequent upgrades.pgAdmin does provide another option to set the settings in the config_system.py file which is intended for system administrator to include settings and which is outside of the pgAdmin installation. Please refer https://www.pgadmin.org/docs/pgadmin4/4.28/config_py.html for more details.
PREVIOUS ANSWER
Another answer had comments asking what caused this/how the author figured it out.
For posterity, this is documented in the FAQ:
When I launch pgAdmin 4 v4.28 or later on Windows, the loading page never closes. Why?
pgAdmin 4 v4.28 includes additional security features, one of which is intended to prevent security issues caused by Content Sniffing.
Unfortunately some Windows systems are misconfigured such that this causes Javascripts used by pgAdmin to fail to load. Opening the developer tools on your browser will show an error similar to this:
> Refused to execute script from
> 'http://127.0.0.1:57313/static/vendor/require/require.min.js?ver=42800'
> because its MIME type ('text/plain') is not executable, and strict
> MIME type checking is enabled.
>
> (index):39 Uncaught ReferenceError: require is not defined at
> (index):39
This will occur when the value of the registry key at HKEY_CLASSES_ROOT\.js\Content Type is set to text/plain. To resolve the issue, use the Registry Editor and reset the value of HKEY_CLASSES_ROOT\.js\Content Type to:
text/javascript
Finally, restart the pgAdmin server.
Interestingly enough, GoLang, TensorBoard, Django, and many others have had issues filed regarding this same problem. Browsers are refusing to load content because the browser thinks it is being transferred as 'text/plain', based on the registry configuration.
Do the following steps to resolve this:
- Open your registry editor.
- Change the value of HKEY_CLASSES_ROOT\.js\Content Type from text/plain to text/javascript.
- Restart the pgadmin server. You can do this by ending the pgadmin background task from the task manager.