【发布时间】:2018-01-05 13:39:03
【问题描述】:
我开发了一个 Angular 2 应用程序并将其部署到运行在类似
之类的服务器后面的服务器上http://localhost:8080/platform/owa/myapp/index.html
该平台是一个 Java 应用程序,通过其 Open Web App(OWA) 模块支持Open Web Apps。因此,平台上部署的所有应用程序始终从 /platform/owa/app_name/index.html 访问。
所以当我第一次部署我的 Angular 2 应用程序时,我遇到了很多 404 错误,我查看了控制台并注意到所有 JavaScript 文件都是从根目录解析的。例如http://localhost:8080/script.js 而不是http://localhost:8080/platform/owa/app_name/script.js。为了解决这个问题,我必须像这样动态设置 base-href
document.write('<base href="' + document.location + '" />');
通过该更改,我不再收到 404 错误消息,并且页面可以正常显示。但是在需要访问 /assets/ 文件夹中的图像的页面中会弹出一个问题。图像不显示。我的徽标无法显示,当我检查控制台时,我注意到 angular 仍在尝试解析与 root 相关的 assets 文件夹
localhost:8080/assets/logo.png 这会导致 404 并且我的徽标无法显示。我还在我的项目中使用 tinymce 编辑器,它希望 /assets/ 文件夹中存在一些文件,但由于它也无法访问 assets 文件夹,因此 tinymce 编辑器不起作用。
更新根据下面的评论,我意识到我留下了一个重要的细节。为了访问我使用的徽标,我将源设置为 /assets/logo.png。也许我可以更改它以使用应用程序的路径,因为它在我的控制之下,但我如何让 tinymce 解析资产文件夹。这是我下载的一个插件,它需要一些文件在 assets 文件夹中。
【问题讨论】:
-
您如何访问资产?您的应用程序/样式表的路径是什么?
-
对于我的徽标,我通过 /assets/logo.png 访问了它。我总是可以修改它以反映该部分,因为代码在我的控制之下。但是tinymce不在我的控制之下。它需要访问资产文件夹中的一些文件。我该如何解决?