Angular 2 项资产在更改基本 href 后未解析

Angular 2 assets not resolved after changing base href

我开发了一个 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 错误,我查看了控制台并注意到所有 Java 脚本文件都是从根目录解析的。例如 http://localhost:8080/script.js instead of http://localhost:8080/platform/owa/app_name/script.js。为了解决这个问题,我必须像这样动态设置 base-href

document.write('<base href="' + document.location + '" />'); 

通过该更改,我不再收到 404 错误消息,并且页面可以正常显示。但是在需要访问 /assets/ 文件夹中的图像的页面中会弹出一个问题。图像不显示。我的徽标无法显示,当我检查控制台时,我注意到 angular 仍在尝试解析与根相关的资产文件夹,如

localhost:8080/assets/logo.png 导致 404 和我的徽标无法显示。我也在我的项目中使用了 tinymce 编辑器,它希望 /assets/ 文件夹中存在一些文件,但由于它也无法访问资产文件夹,所以 tinymce 编辑器不起作用。

更新 根据下面的评论,我意识到我遗漏了一个重要的细节。为了访问我使用的徽标,我将源设置为 /assets/logo.png。也许我可以更改它以使用应用程序的路径,因为它在我的控制之下,但我如何让 tinymce 解析资产文件夹。这是我下载的一个插件,它需要一些文件在 assets 文件夹中。

https://www.tinymce.com/docs/integrations/angular2/

从@Vega 的评论中,我意识到我应该问的问题是如何更改 tinymce 的默认值 skin_url?这将使搜索更成功。我用谷歌搜索并看到了一个文档,它说我需要做的就是在创建如下所示的编辑器时指定自定义 skin_url

tinymce.init({
    ...
    skin_url: '/css/mytinymceskin'
});

谢谢