更改基础href

时间:2017-07-29 15:54:13

标签: angular angular2-routing

我开发了一个角度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文件都是从root解析的。例如http://localhost:8080/script.js而不是http://localhost:8080/platform/owa/app_name/script.js。要解决这个问题,我必须像这样

动态设置base-href
document.write('<base href="' + document.location + '" />'); 

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

localhost:8080 / assets / logo.png导致404并且我的徽标无法显示。我也在我的项目中使用了tinymce编辑器,并且它希望某些文件存在于/ assets /文件夹中,但由于它无法访问assets文件夹,因此无法编辑。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

由于