角度路由html5mode ASP.NET
Angular routing html5mode ASP.NET
我有一个angularjs应用程序,它基于ASP.NET项目,使用html5mode,工作非常好,除非我想要传递路由参数。
角度路由:
$locationProvider.html5Mode(true);
$routeProvider.when('/accounts', {
templateUrl: 'templates/accounts.html',
controller: 'accountsCtrl',
title: 'Accounts',
resolve: {
accounts: function (accountData) {
return accountData.getAll();
}
}
});
$routeProvider.when('/account/:accId', {
templateUrl: 'templates/editAccount.html',
controller: 'editAccountCtrl',
title: 'Account',
resolve: {
account: function ($route, accountData) {
return accountData.get($route.current.pathParams.accId);
}
}
});
web.config:
<system.webServer>
<rewrite>
<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" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
Rout localhost:3849/accounts-有效,但localhost:3849/1破坏了系统,看起来无法加载*.js库或任何其他资源。
控制台显示
Uncaught SyntaxError: Unexpected token <
每一个图书馆。怎么了?感谢
更新问题是脚本如何在index.html中引用。原件为:
<script type="text/javascript" src="Scripts/angular.min.js"></script>
必须是:
<script type="text/javascript" src="/Scripts/angular.min.js"></script>
所以当我要求服务器转到localhost:3849/account/1时,它开始在localhost:3849/1account上查找所有文件,但没有找到它们,并返回index.html。路由中的相同问题,而不是
templateUrl: 'templates/editAccount.html',
必须是:
templateUrl: '/templates/editAccount.html',
试试这个(你可能需要调整到index.html的路径):
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<system.webServer>
<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="../index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 从javascript调用asp.net codebehind函数
- 使用javascript的Asp.net内容占位符
- 获取ASP.NET Ajax Timer状态
- ASP.NET网络摄像头显示
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- asp.net,包括iss上的javascript slow
- 选择不在GridView-ASP.NET中激发
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 将Javascript日期转换为ASP.NET日期格式
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 在asp.net中确认是或否消息
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- asp.net中的验证工具