2017-08-04 149 views
1

我在IIS中托管了我的Angular2应用程序,我的应用程序中有三个组件。 第一个组件加载完美,但其余组件加载不正确。 我的应用程序启动URL是Angular2路由在IIS中不工作

http://localhost/UI/login/

(装载资产正常)。当我在一个按钮上点击另一个组件时,点击我指的是位于assets文件夹中的相同图片,该图片未正确加载。 我找到了它的根本原因,但我不知道如何解决它。原因是 按钮单击它会重定向到

本地主机/ UI /日志/ Project02(我不能添加https://开头,因为它不允许超过2个链接)

和本地主机(在服务器上)正在寻找像这样的资产文件夹localhost/UI/log/assets/logo.png而不是localhost/UI/assets/logo.png。为什么第一个组件中加载了相同的图像,而第二个组件中没有加载?我也尝试通过更改index.html中的base href =“/”

我的第二个问题是,在点击一个按钮,我路由到第三个组件它正在为localhost/UI /日志/ logdetails/2,而不是本地主机/ UI/logdetails/2

谁能帮我这个?

这是HTML代码参照标志

<a href="#"><img src="assets/logo.png" alt=""></a> <span class="header-txt">Log</span> 

this is my folder structure

+0

请提供您的代码,您已添加图像 – Faisal

+0

@Faisal:我更新了我的问题,请检查它 –

+0

更改您的img为:' – Faisal

回答

1

我修改了代码:

img src="../assets/logo.png" alt="" 

哪个正确装入我的形象。

默认情况下,基本URL被设置为(/)或root。

这意味着您的应用程序将从根文件夹开始,即在本地它将认为是localhost:1234 /并且它将在服务器上考虑根文件夹。

当你运行你的应用程序,它可能会混淆你的浏览器为您的文件不在根路径可以通过404

所以最好的办法是在基地的href添加相对路径,如:

<base href=”/Project_Name/”>