![](/img/trans.png)
[英]AngularJs - change default state of slider directive in this instance?
[英]How to change angularJS directive for IIS Default Web Site
我正在使用ASP.NET MVC和AngularJS创建一个Web应用程序。 当我调试Web应用程序时,URL是这样的:
http://localhost/Home/Index#/Login
当我将它发布到我使用的IIS开发服务器时,我使用默认网站,所以url将是这样的:
http://ipaddress/MyApp/Home/Index#/Login
因此,我的指令不起作用。 它们设置如下:
'/Login':
{
templateUrl: '/Account/Login',
controller: 'AccountController'
},
在IIS开发服务器上,此指令调用Web应用程序的路由:
http://ipaddress/Account/Login
应该是
http://ipaddress/MyApp/Account/Login
有没有办法在两种情况下改变指令?
我试图在templateUrl前面使用“/”字符,但它似乎不起作用(它获取localhost / Home / Account / Login而不是localhost / Account / Login)
刚刚遇到这个寻找与在网站下面的IIS应用程序中托管Angular应用程序相关的类似问题的答案。 我只需添加一个就可以修复TemplateUrl问题.
之前/
'/Login':
{
templateUrl: './Account/Login',
controller: 'AccountController'
},
我可以为您提供两种选择:
服务器配置
不要使用虚拟目录在开发环境中托管您的应用程序。 而是在IIS中托管具有不同主机头的不同站点,以便您可以从根目录引用内容,例如: /Account/Login
配置模块
考虑使用一个注入角度应用程序的模块,该模块包含可用于为特定环境构建URL的配置。 然后为开发环境提供此模块文件的一个版本,一个用于本地,一个用于生产。 Javascript的优点在于您可以在不同的环境中包含不同的javascript文件,因此模块可以来自不同的文件。
有关此选项的更多信息,请查看此答案: https : //stackoverflow.com/a/16340438/431522
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.