pgadmin 4 v4.28无法加载

65

我安装了pgadmin 4 v4.28,但它一直在加载但无法打开,我尝试以管理员身份打开它,但仍无法打开。 我之前安装了旧版本,但在安装上述版本之前已正确删除了PostgreSQL DB和pg admin。 您能帮我解决这个问题吗? 我有该问题的截图链接。

输入图像描述 here


可能是重复问题:https://dev59.com/S1IG5IYBdhLWcg3wgwJ6 - niamulbengali
6个回答

154

按照以下步骤解决此问题:

  • 打开注册表编辑器。
  • 将 HKEY_CLASSES_ROOT\.js\Content Type 的值从text/plain更改为text/javascript
  • 重新启动 pgAdmin 服务器。您可以通过在任务管理器中结束 pgAdmin 后台任务来执行此操作。

1
每次更新到Visual Studio 2019都会翻转回来,因此可能需要多次执行。 - Jesse C. Slicer
2
适用于我。不过我想知道为什么修复方法这么难以理解。 :) - AER 4AF
1
修改后,我不得不重新启动我的Windows 10笔记本电脑。Restart-Service postgresql*没有完成任务。但是重新启动后一切正常! - Tolga
1
它安全吗?它会导致一些意外的行为吗?我的意思是,它会破坏我机器上的其他应用程序吗? - Joseph Katzman
这里的主要问题是什么?它能工作,但为什么? - Sujan Rai
显示剩余4条评论

15

更新答案

PGAdmin一直在跟踪漏洞 5996。他们推荐以下解决方案

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.

他们还提到:
在下一个版本中,我们计划将其包含在代码中,这样用户就不必自行操作。
但是回答你的问题,config_distro.py 可以在随后的升级中被覆盖。 pgAdmin 还提供了另一种选项,可以在 config_system.py 文件中设置设置,该文件旨在供系统管理员包括设置,并且在 pgAdmin 安装之外。请参阅 https://www.pgadmin.org/docs/pgadmin4/4.28/config_py.html 以获取更多详细信息。

之前的回答

另一个回答中有评论问是什么导致了这个问题/作者是如何找出来的。

为了后人,这在FAQ中有记录:

当我在Windows上启动pgAdmin 4 v4.28或更高版本时,加载页面永远不会关闭。为什么?

pgAdmin 4 v4.28包括额外的安全功能,其中之一旨在防止由内容嗅探引起的安全问题。

不幸的是,某些Windows系统被错误配置,这会导致pgAdmin使用的Javascript无法加载。在浏览器上打开开发者工具将显示类似于以下错误:

> 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

当HKEY_CLASSES_ROOT\.js\Content Type注册表键的值设置为text/plain时,就会发生这种情况。为了解决这个问题,请使用注册表编辑器并重置HKEY_CLASSES_ROOT\.js\Content Type的值为:text/javascript。最后,重新启动pgAdmin服务器。
有趣的是,GoLangTensorBoardDjango和许多其他应用程序都因为相同的问题而被提出了问题。基于注册表配置,浏览器拒绝加载内容,因为它认为正在以'text/plain'传输。

由于某些原因,此常见问题解答现在已从链接的常见问题解答页面中删除。 - Gabriel Magana
@GabrielMagana 嗯,那很有趣。我想知道他们是否会移除在4.28中引入的额外安全性。它导致产品在开箱即损坏,所以如果他们撤销决定,我也不会感到惊讶。 - Lynn Crumbling
2
@GabrielMagana 刚刚更新了这个答案。他们打算通过在 config_distro.py 中包含额外的行来使 4.29 正常工作,而无需修改注册表。 - Lynn Crumbling
1
嗨@LynnCrumbling,感谢您的回答!在查看https://www.pgadmin.org/docs/pgadmin4/4.28/config_py.html上的文档后,我认为最好使用的文件是`config_local.py`,因为它不会被覆盖。在遇到这个问题后,我已经测试过它,它的效果非常好。 - Wes
当你不得不重新编写一个应用程序才能运行它时,你就知道这个应用程序编码得很好。 - Krusty the Clown

4

2022年5月25日编辑(pgadmin4下载新链接)

你们都给出了很好的答案……但是根据我的经验,最简单的方法是安装新版本的pgadmin4,无需卸载现有版本。

这就是我所做的,我能够仍然看到所有未改变和未被篡改的数据库和表格。

只需运行安装程序,你就可以开始使用了。


2
对于未来的用户,你可以安全地卸载现有的软件。只需进入“添加或删除程序”,点击“Postgres”,然后点击“卸载单个组件”,如果你已经安装了该软件,就将其移除。 - Lynob
同样的,捆绑在一起的那个不起作用,来自pgadmin网站的那个虽然是同一个版本,但却可以使用。对我来说,注册表编辑器没有起到任何作用。 - Spartan

1
我刚刚将PG Admin从v4.28升级到V4.29,并解决了我的问题。可以从这里下载Linux的最新版本,这里下载Windows的最新版本,这里下载Mac的最新版本。
这类似于vialy的建议。感谢Vialy的贡献,它拯救了我的一天... :)

it is a pleasure :) - vially

1
您还可以降级您的PgAdmin。我不想在注册表编辑器中更改任何内容。因此,我下载并安装了pgadmin4-3.6。它在Windows 10(x64)上运行良好。

1
你也可以升级到v4.29版本,它是可行的。https://www.postgresql.org/ftp/pgadmin/pgadmin4/v4.29/windows/ - rustyx

-1

我在使用Chrome浏览器和Windows 10操作系统时,也遇到了pgAdmin 4.28的同样问题。但是当我切换到Edge浏览器后,问题得到了解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接