【问题标题】:Angular 2 assets not resolved after changing base href更改基本href后未解决Angular 2资产
【发布时间】: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 文件夹中。

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

【问题讨论】:

  • 您如何访问资产?您的应用程序/样式表的路径是什么?
  • 对于我的徽标,我通过 /assets/logo.png 访问了它。我总是可以修改它以反映该部分,因为代码在我的控制之下。但是tinymce不在我的控制之下。它需要访问资产文件夹中的一些文件。我该如何解决?

标签: angular angular2-routing


【解决方案1】:

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

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

谢谢

【讨论】:

  • 太好了,我很高兴 :)
猜你喜欢
  • 2019-01-14
  • 2023-03-22
  • 2016-11-01
  • 2020-02-02
  • 2018-09-25
  • 1970-01-01
  • 2019-11-01
  • 2016-04-04
  • 2019-12-26
相关资源
最近更新 更多