[英]Scriptmanager issue because of rewrite rule in web.config for angularjs
我有一个angulajs应用程序,该应用程序将路由实现为
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when("/home", {
templateUrl: "home.html",
controller: "homeController"
})
.when("/filter", {
templateUrl: "filter.html",
controller: "filterController"
})
和我在asp.net的web.config重写规则如下的建议这里- SO
<rewrite>
<rules>
<rule name="AngularJS" 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="/webmasterpage.html" />
</rule>
</rules>
</rewrite>
使路由在asp应用程序中工作,但由于我面临重写规则
WebResource.axd和ScriptResource.axd中的意外令牌<错误
并且
ASP.NET Ajax客户端框架无法加载asp:scriptmanager的错误
如果我注释掉web.config文件中的重写规则,此错误将消失,但angularjs路由将无法工作! 我们可以用哪种方式编写重写规则,以便使两者(asp scriptmanager和angularjs路由)都能正常工作。 任何帮助表示赞赏
因此,经过大量搜索之后,我终于能够突破相同的境界。 在这里分享我的答案,以便将来对您有所帮助。 所以我在web.config文件中配置了angular的规则,如下所示:
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.html$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.js$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.css$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.aspx$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.axd$" negate="true" />
</conditions>
<action type="Rewrite" url="/webmasterpage.html" />
</rule>
</rules>
</rewrite>
你可以在这里注意
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.html$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.js$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.css$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.aspx$" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.axd$" negate="true" />
我特别提到了我要加载和访问的文件扩展名。 .axd是由asp动态生成的,并且没有被加载,因此在规则中专门列出后,现在就可以加载了。 我不太了解技术,但这对我有用,我相信也会帮助其他人。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.