我再次修补我的AngularJS 1网站,试图摆脱哈希爆炸。
我已在 app.js 中设置了$locationProvider.html5Mode(true);
,并在页面标记中添加了<base href="/">
。当然,当我点击一个链接时,它工作正常,但如果我刷新或尝试直接转到页面,它就会因404错误而崩溃。
我的网站托管在Github Pages上,我正在前面配置CloudFlare。我很好奇,如果我可以配置CloudFlare的一个免费页面规则来正确处理哈希爆炸。或者这只能用IIS / Express / Apache完成吗?
路由代码段
var app = angular.module('eat-sleep-code', ['ngRoute', 'ngSanitize']);
/* Routing */
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider.
/* Root */
when('/', {templateUrl: 'views/home.html', controller: 'DefaultController'}).
when('/contact', {templateUrl: 'views/contact.html', controller: 'DefaultController'}).
when('/privacy', {templateUrl: 'views/privacy.html', controller: 'DefaultController'}).
when('/resources', {templateUrl: 'views/resources.html', controller: 'DefaultController'}).
when('/terms', {templateUrl: 'views/terms.html', controller: 'DefaultController'}).
otherwise({
redirectTo: '/404'
});
$locationProvider.html5Mode(true);
}]);
答案 0 :(得分:1)
我收到了来自Cloudflare支持的电子邮件,这是不可能的(至少截至今天,2017年1月5日)。我想我现在会被困在hashbang中。