我有一个使用IIS 8.0 like so托管在另一个网站中的应用程序(如果相关,它是使用CLI和Webpack的Angular 2项目)。我在https://example.org/MyApp上托管我的应用。不幸的是,当我尝试运行该站点时,我为每个引用的文件收到404错误。当浏览器实际托管在https://example.org/MyApp/file.jpg时,浏览器正试图在https://example.org/file.jpg上查找我的文件。有没有办法告诉IIS在子目录而不是根文件夹中搜索这些文件?
作为一个注释,Webpack使用相关文件路径进行所有捆绑,因此将这些文件路径更改为绝对路径是不可行的。
答案 0 :(得分:0)
修改index.html以设置<base href>
例如<base href="/MyApp/">
答案 1 :(得分:0)
也许我在这里打败一匹死马,但这似乎很可靠:
基本上是设置base-href和IIS-url-rewrite的混合。
--base-href /myAppDir/
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Angular 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/" />
<!--<action type="Rewrite" url="/" />-->
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
match-url
来满足您网站的需求。来自: https://devblogs.microsoft.com/premier-developer/tips-for-running-an-angular-app-in-iis/