【问题标题】:Angular Js SPA is not working after publishing in IIS 8.5Angular Js SPA 在 IIS 8.5 中发布后无法正常工作
【发布时间】:2015-11-01 01:20:27
【问题描述】:

我在 ASP.NET MVC 框架中使用 AngularJS 使用 SPA 技术,当它从 VS2013 运行时,页面之间的 AngularJS 路由工作正常,但在将应用程序托管到 IIS8.5 后路由不起作用。

当我使用 IIS express 运行应用程序时,url 是 http://localhost:12345/#/home 发布后http://localhost/myapp/#/home

这是我的 app.js,

 $routeProvider.when("/home", {
        controller: "homeController",
        templateUrl: "/app/views/home.html"
    });

index.html

<li> <a href="#/home">Home</a></li>

当我在 Windows azure 中发布我的应用程序时,应用程序运行正常。因为网址是myapp.azurewebsite.netmyapp.azurewebsite.net/#/home

如何在本地 IIS 中进行类似的托管。

【问题讨论】:

    标签: angularjs iis-8.5


    【解决方案1】:

    你几乎可以找到答案——那就是绝对文件路径。

    快速修复:

    templateUrl: "/app/views/home.html" 更改为templateUrl: "app/views/home.html"(去掉标题斜线)

    答案:

    如果您将templateUrl 指定为/app/views/home.html(以/ 开头),则告诉浏览器从根目录获取它。

    如果你的webapp存储在http://localhost/myapp/,你的浏览器会访问http://localhost/app/views/home.html获取模板。

    这也解释了为什么您的应用在根目录中运行良好,但在子目录中却无法运行,例如 http://localhost/myapp/#/home

    不用担心相对路径的副作用。所有资源都是相对于index.html计算的。

    【讨论】:

    • 好极了。删除/工作正常后:)。也适用于图像..其中一些正在工作。对于图像,我使用了延迟加载功能... bn-lazy-src [bennadel.com/blog/2498-lazy-loading-image-with-angularjs.htm].对于这个 img 类型......同样的问题。始终显示默认图像..即使图像存在。你能建议..编辑我的问题。添加图像。
    • @PrasadKanaparthi 这些图像存储在 Angular 目录之外?如果是这样,图像路径与角度路径无关,它们被上传到某个后端?您可以对这些文件使用绝对路径。并使用 Angular 的 constant 指定后端的图像存储目录来存储图像的基本路径。
    猜你喜欢
    • 2017-03-06
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多