无法在页面重新加载angularJS上加载资源文件

时间:2016-07-17 09:07:14

标签: angularjs ngroute

我有以下路线:

/**
 * General app route
 */
angular
    .module('app')
    .config(config);

config.$inject = ['$routeProvider', '$locationProvider'];
function config($routeProvider, $locationProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'partials/index.html',
            controller: 'ImageController'
        })
        .when('/category/:name', {
            templateUrl: 'partials/index.html',
            controller: 'CategoryController',
        })
        .when('/404', {
            templateUrl: 'partials/404.html'
        })
        .otherwise({ redirectTo: '/404' });

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
}

当我尝试从基本路由访问类别路由时,它工作正常,但是当我在类别路由上重新加载页面时,它尝试通过类别路径而不是基本路径访问资产文件。 我该如何解决?

3 个答案:

答案 0 :(得分:1)

我通过将base标记添加到index.html

来解决这个问题
<head>
    <base href="/index.html">
</head>

答案 1 :(得分:0)

一种方法是禁用HTML5模式

$locationProvider.html5Mode({
    // enabled: true,
    requireBase: false
});

其他方法是确保服务器端路由返回正确的HTML文件。

答案 2 :(得分:0)

您已激活html5模式,为此您需要将所有流量重定向到index.html

有关详细信息,请参阅html5模式部分https://docs.angularjs.org/guide/ $ location