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

Not allowed to load local resource -error on chrome, Angular app is not running after production build

我在部署 angular 应用程序时遇到问题。如果部署,它不会出现在另一台机器上。我的应用程序不是 运行ning,它在 Chrome:

上显示以下错误

不允许加载本地资源

在 Mozilla 中:

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

事实是,如果从其他机器部署,它工作得很好。所以我猜问题出在 node 或 typescript 或 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 文件夹。

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

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

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

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

git-bash 将命令的最后一个参数 - ng build --prod --base-href /candidate/ 视为相对于其二进制文件夹的路径并添加前缀与之相关的参数(它将 "seems-to-be" 相对路径转换为绝对路径)。

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

要解决 git-bash 的问题,请执行 this link,这实际上帮助我解决了我的特定问题。