首页 新闻 会员 周边

angularjs 项目使用html5Mode方式重绘url

0
悬赏园豆:15 [已解决问题] 解决于 2016-05-04 17:30
livereload: {
options: {
open: true,
middleware: function (connect) {
var modRewrite = require('connect-modrewrite');
return [
modRewrite([
'!\\.html|\\.js|\\.css|\\.svg|\\.png$ /index.html [L]'
]),
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect().use(
'/app/styles',
connect.static('./app/styles')
),
connect.static(appConfig.app)
//lrSnippet
//mountFolder(connect, '.tmp'),
//mountFolder(connect, appConfig.app)
];

}
}
},
将Gruntfile.js文件改成这样后就出现Failed to decode downloaded font错误,实在是不知道怎么办了 求助啊!!!!!!!
kistliu的主页 kistliu | 初学一级 | 园豆:138
提问于:2015-08-04 16:09
< >
分享
最佳答案
0

已经启用grunt,换用gulp了。在gulp中使用browerSync + connect-history-api-fallback 来实现静态服务器,浏览器刷新工作。

var browserSync = require('browser-sync);
var historyApiFallback = require('connect-history-api-fallback');
gulp.task('serve', function () {
  return browserSync({
      server: {
          baseDir: "./dist",
          middleware: [historyApiFallback /* 这个是启用gzip, compression() */]
      },
      port: 9000,
      files: []
  });
});

对于你本身的问题,我建议你可以先按照https://github.com/tinganho/connect-modrewrite 默认配置跑起来,再去修改配置项。

收获园豆:15
幻天芒 | 高人七级 |园豆:37175 | 2015-08-04 16:31

使用grunt是没有问题的,我现在是要将路由中的#去掉,然后找了解决方案是可以的了,但又出现了一个新的问题,在浏览器中直接使用地址访问就会出现Cannot GET /main错误,代码就改成上面那样,接着就是不论是启动访问,还是直接使用地址访问,对于web字体都是没有加载的。

kistliu | 园豆:138 (初学一级) | 2015-08-04 16:56

@kistliu: 两点问题,直接访问报404,是因为你输入地址的时候,angular还没有接管路由,导致直接走静态请求,所以找不到。这个的解决方案,就是使用require('connect-history-api-fallback')这个包,放在你的静态服务器中间件中。

关于web字体加载的问题,首先你要确认你的web字体发起了请求,然后在'!\\.html|\\.js|\\.css|\\.svg|\\.png$ /index.html [L]'这种里面,要排除掉你的字体格式,要不然又不走文件请求了。

幻天芒 | 园豆:37175 (高人七级) | 2015-08-04 17:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册