所以我一直在努力使用我的Angular.js应用程序和IIS重写。我的网站位于http://server/jwb/文件夹中。我重写了/ jwb /中的index.html文件,我有一个index.html的内部。问题是,当我导航到http://server/jwb/parties/12345时,通过角度来看它看起来很好,但是当我在浏览器上点击刷新时我丢失了CSS和javascript。我查看控制台,它们被重写为http://server/jwb/parties/js/nameoffile.js等。我想要做的是告诉IIS重写,总是看到js,css和img文件,它们真正驻留在http://server/jwb/js ,http://server/jwb/css和http://server/jwb/img等
为我完成此任务的重写规则是什么?有没有比使用重写规则更好的方法?
我目前在我的web.config中有这个:
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^index\.html" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="." ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.html" />
</rule>
</rules>
然而,这仍然是奇怪的事情。我甚至用相对路径做了一些测试,这就是我发现的:
我们现在测试了以下引用文件的方法:
<link rel="stylesheet" href="css/bootstrap.css" />
OR
<link rel="stylesheet" href="/css/bootstrap.css" />
OR
<link rel="stylesheet" href="./css/bootstrap.css" />
OR
<link rel="stylesheet" href="../css/bootstrap.css" />
它们都不起作用。下面显示了当我们使用每个文件引用应用程序的路径时会发生什么。为了论证,我们的路径如下:
index --> http://10.34.34.46/jbvdev/calendar
documents --> http://10.34.34.46/jbvdev/documents/BC498484
caseNotes --> http://10.34.34.46/jbvdev/casenotes/CV/LA%20/2081/BC498484
答案 0 :(得分:2)
我有完全相同的问题...并且在完成所有添加基础ref之后,其他地方建议的东西仍然具有完全相同的问题。
是的,请添加基础参考&#34; /&#34;在你index.html或任何页面是你的角应用程序的基础。然后你需要恢复到良好的状态。正则表达式......
我玩了一段时间才能在正确的位置找到正确的位置,然后捕捉到正确的部分....所以你需要为它调整它...
对我来说,我的路径是
正在发生的事情只是刷新了应用程序路径在/ Content或/ Scripts之前插入...下面是最终为我修复它的规则集...
<rewrite>
<rules>
<rule name="Removevesseldetailsscripts" stopProcessing="true">
<match url="^(.*[/])Scripts/(.*)$" />
<conditions>
</conditions>
<action type="Redirect" url="Scripts/{R:2}" />
</rule>
<rule name="Removevesseldetailscontent" stopProcessing="true">
<match url="^(.*[/])Content/(.*)$" />
<conditions>
</conditions>
<action type="Redirect" url="Content/{R:2}" />
</rule>
<rule name="Main Rule" 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="/" />
</rule>
</rules>
</rewrite>
R:2位是将角度路径放回到正确位置的URL中,显然还有R:1,它捕获了实际路径的根...
有一个游戏,让我知道我是否可以提供更多帮助!祝你好运!!!