【问题标题】:angular route with asp.net MVC remove hash # on url带有asp.net MVC的角度路由删除url上的哈希#
【发布时间】:2016-06-24 01:20:49
【问题描述】:

我正在使用带有 ngRoute 模块的 ASP.NET MVC 和 AngularJS 开发一个 Web 应用程序。配置工作正常,但 URL 包含 #/,我想删除它们。我知道重点是在<head> 中添加$locationProvider.html5Mode(true);<base href="/">,但是与服务器端路由存在一些冲突,我无法让它工作。

这是路由提供者

$routeProvider
    .when("/", {
        templateUrl: "Home/Phones",
        controller: "firstController"
    })
    .when("/phone", {
        templateUrl: "Home/Phone",
        controller: "secondController"
    })

通过http://localhost/test/#/http://localhost/test/#/phone可以正常访问页面。

现在,如果我在索引页的标题部分添加$locationProvider.html5Mode(true);<base href="test">,我可以在http://localhost/test/ 访问默认页,但该页是空的。尝试访问时,http://localhost/test/phone 出现错误,找不到 404 页面。

那么...如何解决第一个问题?控制台没有显示任何错误,不知道该尝试什么...

我想我至少应该更改我的RouteConfig.cs,而不是包含默认值

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

【问题讨论】:

    标签: javascript angularjs asp.net-mvc ngroute


    【解决方案1】:

    浏览器正在请求资产/test/phone,但该资产不存在。对于使用 html5Mode 的单页应用程序中的 404,您需要配置您的网络服务器以在所有“404”上提供 index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 2017-03-25
      • 2015-12-26
      • 2014-11-15
      • 2014-02-09
      相关资源
      最近更新 更多