我们的网站服务器上有一个IIS网站和一个IIS Web应用程序。 Web应用程序的根目录是: http://website/webapplication/ 。 部署后,我在浏览器中收到以下错误:
http://website/app/app.component.html 404(未找到)
app / app.component.html 404(未找到)
我的组件:
@Component({
selector: "app",
templateUrl: "./app/app.component.html"
})
文件app.component.html确实不存在于 /app/app.component.html 下,但确实存在于: /webapplication/app/app.component.html
所以,我的结论是Angular仅在网站的根目录中有效。
在html标头中,我已将标记设置为:<base href="/webapplication/">
,但这并没有帮助。
这似乎是一个正常的设置,我无法相信在Angular中解析的模板失败了,我必须遗漏一些东西......有没有人知道解决方案?
答案 0 :(得分:0)
虽然您可以使用Url Rewrite并使其正常工作,但此问题的唯一长期解决方案是使用HashLocationStrategy。
答案 1 :(得分:0)
我无法使用网络上有关解决此问题的大多数建议,我也不知道为什么。我玩了设置util,直到它正常工作。这是我用的:
webconfig:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="true" />
<rewrite>
<rules>
<rule name="AngularJS Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/myapp/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我的根index.html文件:
<base href="./"> <---- make sure you have the dot in there!