Tas*_*iha 2 web-deployment node.js typescript angular ng-build
我在部署角度应用程序时遇到问题。如果部署的话,它不会发生在另一台计算机上。我的应用程序未运行,并且在 Chrome 上显示以下错误:
不允许加载本地资源
在 Mozilla 中:
元素的“src”属性不是有效的 URI
问题是,如果从其他机器部署它,它工作得完全正常。所以我猜测问题出在 node 或 typescript 或 ng 或其他版本上。我是服务器部署新手,这种问题对我来说是新的。
我使用以下命令来生成部署文件夹:
ng build --prod --base-href /candidate/
Run Code Online (Sandbox Code Playgroud)
以下是我的版本详细信息:
节点版本: v10.16.3
应用typescirpt版本: Version 2.9.2
机器上全局安装的 typescript 版本: Version 3.6.3
我在生产构建之前删除node modules并package-lock.json归档并运行。npm install我没有收到错误并且成功生成dist文件夹。
如果部署文件夹是从已安装升级或降级节点版本的计算机部署的,则部署文件夹可以完美运行。
我发现了许多关于浏览器上显示的错误的建议,尝试升级节点全局版本,但没有办法解决。我很不确定我在这里缺少什么。在这种情况下,任何形式的提醒都会很好。
深入研究后,我发现问题不在于版本,而在于构建后在 index.html 文件中生成的基本 URL。
在 Windows 上使用 git-bash 时会出现此问题。
git-bash 将命令的最后一个参数ng build --prod --base-href /candidate/视为相对于其二进制文件夹的路径,并将其放在参数前面(它将“似乎”的相对路径转换为绝对路径)。
因此,我使用 PowerShell 而不是 Git-Bash,问题就消失了。 那里的 base-href 参数处理得很好。
要解决 git-bash 的问题,请访问此链接,它实际上帮助我解决了我的特定问题。