【问题标题】:Throwing cannot get error after enabling html5Mode in AngularJS在AngularJS中启用html5Mode后投掷不会出错
【发布时间】:2015-07-07 18:47:42
【问题描述】:

我在我的应用程序中使用 UI-Router 来处理路由/状态,并且 URL 带有“#”,所以要删除它,我使用了 $locationProvider 之类的 -

function configState($stateProvider, $urlRouterProvider, $locationProvider) {

    $locationProvider.html5Mode(true);

在模块依赖中添加了ngRoute,并在我的index.html中添加了<base href="/" >。

问题 -

如果我像在同一个选项卡中一样将它用作普通应用程序并导航到其他状态,那么只要我将 URL 粘贴到另一个选项卡并点击输入它的抛出 Cannot GET /app_views/contacts URL 时,它就会工作但是喜欢-http://localhost:9000/app_views/contacts

虽然 URL 中有哈希,但它可以双向工作。

【问题讨论】:

    标签: javascript angularjs angular-ui-router ngroute


    【解决方案1】:

    您可能会收到此错误,因为您的服务器配置不正确。换句话说,当您手动输入/app_views/contacts 时,它将向该页面的服务器发出请求。为了使其正常工作,您需要配置您的服务器以将所有流量路由到您的 index.html 页面,以便 Angular 正确接管并显示正确的视图。

    这是一个相关的帖子Reloading the page gives wrong GET request with AngularJS HTML5 mode

    【讨论】:

    • 你用的是什么服务器?
    • 我只是在运行一个引导主题 wrapbootstrap.com/theme/homer-responsive-admin-theme-WB055J451 并在文档中提到在安装 grunt-cli 后通过 grunt live 命令运行它
    • 嗯,在这种情况下,我假设它是一个 node.js 服务器。您仍然需要在服务器端修复它。您可能可以在那里挖掘并找到应用程序的服务方式。你需要做这样的事情stackoverflow.com/a/18214539/3075624 再次我只是假设这是一个节点服务器,它会根据你使用的服务器而略有不同,但不管你必须将所有东西都指向你最有可能的入口点你的index.html 页面。
    • 我想我需要看看一些繁重的任务......谢谢帮助:) +1 并添加了一个勾
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2018-11-28
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多