Cloudflare Page Rules 会处理 AngularJS HTML5 模式 404 问题吗
Will Cloudflare Page Rules deal with AngularJS HTML5 mode 404 issue
我正在再次修改我的 AngularJS 1 站点,试图摆脱哈希刘海。
我在我的 app.js 中设置了 $locationProvider.html5Mode(true);
,并且在页面的标签中添加了 <base href="/">
。当然,当我单击 link 时它工作正常,但如果我刷新或尝试直接转到某个页面,它就会崩溃并出现 404 错误。
我的站点托管在 Github 页面上,我正在它前面配置 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);
}]);
我收到 Cloudflare 支持的回邮,说这是不可能的(至少截至今天,2017 年 1 月 5 日)。我想我现在会被 hashbang 困住。
我正在再次修改我的 AngularJS 1 站点,试图摆脱哈希刘海。
我在我的 app.js 中设置了 $locationProvider.html5Mode(true);
,并且在页面的标签中添加了 <base href="/">
。当然,当我单击 link 时它工作正常,但如果我刷新或尝试直接转到某个页面,它就会崩溃并出现 404 错误。
我的站点托管在 Github 页面上,我正在它前面配置 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);
}]);
我收到 Cloudflare 支持的回邮,说这是不可能的(至少截至今天,2017 年 1 月 5 日)。我想我现在会被 hashbang 困住。