无法在页面重新加载时加载资产文件 angularJS

fails to load assets file on page reloading angularJS

我有以下路线:

/**
 * 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
    });
}

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

一种方法是禁用 HTML5 模式

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

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

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

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

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

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