设置HTML5 模式时刷新页面时遇到问题。导航到 /path
时,它工作正常
,但是当我刷新页面或直接输入 localhost/path
它不起作用
。
HTML5 模式
配置:
$routeProvider
.when('/path', {
templateUrl: 'path.html',
});
$locationProvider
.html5Mode(true);
您应该在 HTML 文件中设置基础
<html>
<head>
<base href="/">
</head>
</html>
在此模式下,您可以在 HTML 文件中使用不带 # 的链接
<a href="/path">link</a>
浏览器中的链接:
http://www.example.com/base/path
在服务器上更新。目前,我只是使用 gulp 模块进行连接。
var gulp = require('gulp');
var connect = require('gulp-connect');
gulp.task('connect', function(){
connect.server({
root: './app',
port: 8080
})
})
最佳答案
要使其正常工作,您需要通过index.html覆盖对非静态资源的所有请求...
对于使用 connect-modrewrite 模块进行连接,如下所示:
var connectModRewrite = require('connect-modrewrite');
connect.server({
root: './app',
port: 8080,
middleware: function (connect) {
return [
connectModRewrite([
'!\\.html|\\.js|\\.css|\\.ico|\\.png|\\.gif|\\.jpg|\\.jpeg|\\.swf.*$ /index.html [NC,L]'
]),
connect.static('./app')
];
}
});
关于javascript - AngularJS 中的 HTML5 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931757/