angular - Angular 7 应用程序在 Tomcat 上的图像路径

标签 angular ubuntu tomcat deployment

我在 Windows 机器(Windows 10、Visual Studio Code 1.30.2)和在 AWS 上托管的 Ubuntu 18.04 服务器上运行的 Tomcat 9 上进行本地开发时遇到了不同的图像源路径问题。基于 Windows 10 的 Powershell 构建:

ng build --prod --base-href /myapp/

顺便说一句,如果用 git bash 构建它会完全弄乱路径,不要这样做。

如果我想让这个应用程序在本地 Windows 机器上运行,并且如果我想拥有可点击的(在 VSCode 中)正确的图像源路径,而不是我必须使用的:

index.html

<base href="/">

在某些组件中,例如:home.component.html

...
<img src="../../assets/data/avatar.png" width=100 />
...

但它需要在部署到 Tomcat 上时显示图像。我想文件权限没有问题,因为整个项目作为“dist”文件夹 () 的内容上传到 Linux 服务器,然后通过 Tomcat UI 管理器部署。除此之外,所有其他工件都已正确加载。

所以,为了让它在 Tomcat 中显示,我必须使用:

index.html

<base href="./">

在某些组件中,例如:home.component.html

  ...
    <img src="assets/data/avatar.png" width=100 />
  ...

有一段时间没有部署了,但我不记得 Windows 和 Linux 的相对路径应该有区别?我哪里做错了?

最佳答案

angular 构建项目后,检查目录结构的 dist 文件夹。您会注意到 asset 目录与 index.html 平行。因此,考虑到此目录结构,您需要提供 Assets 的路径。

因此,在您的模板中,您可以如下引用您的 Assets -

<img src="./assets/data/avatar.png" width=100 />

关于angular - Angular 7 应用程序在 Tomcat 上的图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55209885/

相关文章:

c++ - 在 Qt Creator 中进入 Qt 源代码(在 Ubuntu Linux 中)

Eclipse 和 Tomcat : Unable to start a War project

java - 从 Servlet 访问 Tomcat 上下文路径

ajax - 在同一域中托管两个网站

angular - 如何在 ngx-translate 中翻译另一个翻译中的 key

mysql - phpMyAdmin 导入失败 "undefined"

Angular Header/Http/RequestOptions 自 angular 6.0 以来已弃用,如何将它们更新到 angular 8.0?

mysql - 在 Ubuntu 上使用 phpmyadmin 设置绝对 URL

angular - Razorpay ionic 3 回调问题

angularjs - Angular 1.2 和 Angular 2 共存和增量升级指南