javascript - Angular html5mode 无法按预期工作

标签 javascript angularjs seo

在我的 Angular 应用程序中,所有 URL 都是这样的:

testsite.com/#/standard-page

我希望他们是这样的:

testsite.com/standard-page

我已经阅读了有关将 html5 模式添加到我的配置中的信息,我现在有了这个:

angular.module('myApp').config(['$stateProvider', '$urlRouterProvider', '$locationProvider', config]);

function config($stateProvider, $urlRouterProvider, $locationProvider) {
    $locationProvider.html5Mode(true);

    $stateProvider
        .state('index', {
            url: '/',
            templateUrl: siteInfo.templateRoot + '/startPage.html',
        })
        .state('standard-page', {
            resolve: {
                standardPageData: getStandardPageData
            },
            url: '/standard-page',
            templateUrl: siteInfo.templateRoot + '/standardPage.html',
            controller: 'StandardPageController',
            controllerAs: 'StandardPageCtrl'
        });
};

然后我添加了 <base href="/">到我的头上,但它还没有完全按预期工作。

当我去 testsite.com/#/standard-page在我的浏览器中,它加载了页面,然后将 URL 修改为 testsite.com/standard-page在地址栏中。但是,如果我直接输入 ``testsite.com/standard-page`,它会返回 404。

所以我快到了,只是还没到。有什么想法我可能忘了在这里做什么吗?

最佳答案

Angular 无法完成所有工作。当您编写 testsite.com/standard-page 时,您的服务器必须处理请求并正确响应。您的服务器响应 404,因此您的浏览器无法显示任何内容。

关于javascript - Angular html5mode 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33297437/

相关文章:

javascript - 如何在不使用库的情况下在 javascript 中解码 jwt token ?

javascript - 如何在 Chrome 开发者工具中转到 javascript 文件中的特定行?

javascript - 如何处理 AngularJS 服务中的回调

javascript - 使用 jQuery 创建元素时, "click"和 "onclick"有什么区别?

javascript - express 中的请求正文未定义?

javascript - 检查 ng-click 按钮是否已经被点击

javascript - 全日历 Angular : Add an Event based on Day of the Week.

php - 如何在 OpenCart 中创建自定义的 SEO 友好 URL?

html - 如何从搜索引擎中隐藏某些页面?

用于包装交互式内容的 HTML5 标签?