Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改IIS默认网站的angularJS指令_Javascript_Asp.net_Angularjs_Iis_Angularjs Directive - Fatal编程技术网

Javascript 如何更改IIS默认网站的angularJS指令

Javascript 如何更改IIS默认网站的angularJS指令,javascript,asp.net,angularjs,iis,angularjs-directive,Javascript,Asp.net,Angularjs,Iis,Angularjs Directive,我正在用ASP.NETMVC和AngularJS创建一个web应用程序。 调试web应用程序时,URL如下所示: http://localhost/Home/Index#/Login http://ipaddress/MyApp/Home/Index#/Login '/Login': { templateUrl: '/Account/Login', controller: 'Account

我正在用ASP.NETMVC和AngularJS创建一个web应用程序。 调试web应用程序时,URL如下所示:

http://localhost/Home/Index#/Login
http://ipaddress/MyApp/Home/Index#/Login
        '/Login':
            {
                templateUrl: '/Account/Login',
                controller: 'AccountController'
            },
当我将其发布到我使用的IIS开发服务器时,我使用默认网站,因此url如下所示:

http://localhost/Home/Index#/Login
http://ipaddress/MyApp/Home/Index#/Login
        '/Login':
            {
                templateUrl: '/Account/Login',
                controller: 'AccountController'
            },
因此,我的指令不起作用。 它们是这样设置的:

http://localhost/Home/Index#/Login
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)

我可以为您提供两个选项:

  • 服务器配置

    不要使用虚拟目录在dev中托管应用程序 环境而是用不同的主机头托管不同的站点 在IIS中,以便您可以从根目录中引用内容,例如:
    /Account/Login

  • 配置模块

    考虑使用一个模块,将其注入到angular应用程序中 其中包含一个配置,您可以使用该配置为 具体环境。然后将此模块文件的一个版本用于 开发环境,一个用于本地,可能一个用于生产。 Javascript的妙处在于可以包含不同的 javascript文件在不同的环境中,因此模块可以 可能来自不同的文件

    有关此选项的更多信息,请查看此答案:


  • 尝试在母版页标题部分设置基本url,如


    要区分dev和release,请使用条件编译。请参见此处

    刚刚浏览了这篇文章,寻找与在站点下方的IIS应用程序中托管Angular应用程序相关的类似问题的答案。我可以通过在
    /
    之前添加
    来解决TemplateUrl问题

       '/Login':
            {
                templateUrl: './Account/Login',
                controller: 'AccountController'
            },
    

    这种条件编译在javascript上也可以工作吗?