不允许在 chrome 上加载本地资源 - 错误,生产构建后 Angular 应用程序未运行

Posted

技术标签:

【中文标题】不允许在 chrome 上加载本地资源 - 错误,生产构建后 Angular 应用程序未运行【英文标题】:Not allowed to load local resource -error on chrome, Angular app is not running after production build 【发布时间】:2020-04-08 00:52:50 【问题描述】:

我在部署 Angular 应用时遇到问题。如果部署,它不会发生在另一台机器上。我的应用没有运行,它在 Chrome 上显示以下错误:

不允许加载本地资源

在 Mozilla 中:

元素的'src'属性不是有效的URI

问题是,如果从其他机器部署,它完全可以正常工作。所以我猜问题出在节点或打字稿或ng或其他任何版本上。我是服务器部署的新手,这种问题对我来说是新的。

我正在使用以下命令生成部署文件夹:

ng build --prod --base-href /candidate/

以下是我的版本详情:

节点版本: v10.16.3

应用程序typescirpt 版本: Version 2.9.2

机器上全局安装的typescript版本:Version 3.6.3

我删除了node modulespackage-lock.json 文件并在生产构建之前运行npm install。我没有收到任何错误,并且能够成功生成 dist 文件夹。

如果部署文件夹是从安装了升级或降级节点版本的机器上部署的,则部署文件夹可以完美运行。

我发现了很多关于浏览器上显示的错误的建议,尝试升级节点全局版本但没有办法。我很不确定我在这里缺少什么。在这种情况下,任何形式的提醒都会很棒。

【问题讨论】:

【参考方案1】:

深入挖掘后,我发现问题不在于版本,而在于构建后在 index.html 文件中生成的基本 URL。

在 Windows 上使用 git-bash 时会出现此问题。

git-bash 将命令的最后一个参数 - ng build --prod --base-href /candidate/ 视为相对于其二进制文件夹的路径,并在参数前面加上它(它转换“似乎是”相对路径转换为绝对路径)。

所以,我使用 PowerShell 而不是 Git-Bash,问题就解决了。 base-href 参数在那里处理得很好。

要解决 git-bash 的问题,请通过 this link,它实际上帮助我解决了我的特定问题。

【讨论】:

以上是关于不允许在 chrome 上加载本地资源 - 错误,生产构建后 Angular 应用程序未运行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery window.open() 不允许在 Chrome 中加载本地资源

不允许加载本地资源图像文件:/// C:/ uploads / images

Cordova:不允许加载本地资源:file:///

Xamarin 不允许加载本地资源文件

尝试将 MediaSource 对象附加为 HTML5 视频标签的源时出现“不允许加载本地资源”错误

Chrome 中的访问控制允许来源错误