我很难搞清楚。我将路由配置分成了单独的文件,我不知道出了什么问题。基本上,当我在我的页面上放置链接到我的角度应用程序中的另一个页面时,它可以工作,但是当我复制该URL并加载另一个选项卡或浏览器时,它会给我404.为什么会发生这种情况?这是我的代码:
这就是我app-config.js
的样子:
(function () {
'use strict';
angular
.module('myApp')
.run(appRunner)
.config(appConfig);
appRunner.$inject = ['$rootScope', '$route', '$translate']
appConfig.$inject = ['$routeProvider', '$locationProvider', '$translateProvider', 'LANGUAGES', 'TRANSLATIONS'];
function appConfig($routeProvider, $locationProvider, $translateProvider, LANGUAGES, TRANSLATIONS) {
$routeProvider.otherwise({
redirectTo: '/404'
});
$locationProvider.html5Mode(true);
console.log('configured shit...')
configureTranslations() ;
function configureTranslations() {
var english = TRANSLATIONS[LANGUAGES.EN];
var spanish = TRANSLATIONS[LANGUAGES.ES];
$translateProvider.translations(LANGUAGES.EN, english);
$translateProvider.translations(LANGUAGES.ES, spanish);
$translateProvider.preferredLanguage(LANGUAGES.EN);
}
}
function appRunner($rootScope, $route, $translate) {
$rootScope.$on('$routeChangeSuccess', function() {
setPageTitle();
});
function setPageTitle() {
console.log('current route: ', $route.current)
$translate($route.current.title).then(function(pageTitle) {
document.title = pageTitle;
});
}
}
})();
然后我有另一个文件在另一个页面中配置路由:
(function () {
'use strict';
angular
.module('myApp.views.caesar')
.config(routeConfig);
routeConfig.$inject = ['$routeProvider'];
function routeConfig($routeProvider) {
$routeProvider.when('/caesar-cipher', {
templateUrl: 'views/caesar-cipher/view.html',
controller: 'CaesarCipherCtrl as caesarCipherCtrl',
title: 'CAESAR.TITLE'
}
});
}
})();
在我的标题中,我有一个链接到/caesar-cipher
页。
<a href="/" translate>CAESAR.TITLE</a>
正如我所说,当我点击链接时,它会转到正确的页面。但是当我在另一个标签上打开相同的链接时,它只给我404和一个空白页面。我该如何解决这个问题?
这很奇怪,因为日志说,它找到了资源,然后是下一个 我知道的事情,它找不到任何东西。
[Fri May 26 2017 02:16:58 GMT+0800 (PHT)] "GET /partials/header/header.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[Fri May 26 2017 02:16:58 GMT+0800 (PHT)] "GET /views/caesar-cipher/view.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[Fri May 26 2017 02:16:58 GMT+0800 (PHT)] "GET /images/ciphers_cover.jpg" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[Fri May 26 2017 02:17:00 GMT+0800 (PHT)] "GET /about" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
[Fri May 26 2017 02:17:00 GMT+0800 (PHT)] "GET /about" Error (404): "Not found"