Livereload Html5 Pushstate与AngularJS、ui.Router和yeoman
我想用我的angular js应用程序修复livereload。我正在使用带有html5推送状态的yoeman ui路由器 a必须做什么?索引 对于搜索引擎,您必须将以下内容添加到index.html的Livereload Html5 Pushstate与AngularJS、ui.Router和yeoman,html,mod-rewrite,angularjs-directive,pushstate,connect-modrewrite,Html,Mod Rewrite,Angularjs Directive,Pushstate,Connect Modrewrite,我想用我的angular js应用程序修复livereload。我正在使用带有html5推送状态的yoeman ui路由器 a必须做什么?索引 对于搜索引擎,您必须将以下内容添加到index.html的 <meta name="fragment" content="!"> <base href="/"> 中间件 这个问题的解决方案是采用connect modrewrite中间件 在yeomanfolder中的控制台中安装带有节点packetmanager的中间件 npm
<meta name="fragment" content="!">
<base href="/">
中间件
这个问题的解决方案是采用connect modrewrite中间件
在yeomanfolder中的控制台中安装带有节点packetmanager的中间件
npm install connect-modrewrite
然后调整Gruntfile.js
var modRewrite = require('connect-modrewrite');
livereload: {
options: {
open: true,
base: [
'.tmp',
'<%= yeoman.app %>'
],
middleware: function (connect, options) {
var middlewares = [];
middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]'])); //Matches everything that does not contain a '.' (period)
options.base.forEach(function (base) {
middlewares.push(connect.static(base));
});
middlewares.push(
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
)
);
return middlewares;
}
}
},
我得到一个错误:
TypeError:无法读取grunt.initConfig.browserSync.livereload.options.middleware中未定义的属性'forEach'
,有问题的代码行是options.base.forEach(function(base){
,此解决方案与更高版本不同吗?(2015年11月)
var modRewrite = require('connect-modrewrite');
livereload: {
options: {
open: true,
base: [
'.tmp',
'<%= yeoman.app %>'
],
middleware: function (connect, options) {
var middlewares = [];
middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]'])); //Matches everything that does not contain a '.' (period)
options.base.forEach(function (base) {
middlewares.push(connect.static(base));
});
middlewares.push(
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
)
);
return middlewares;
}
}
},
grunt serve