Grunt连接服务器返回不能与骨干网进行GET /路由

dez*_*man 9 javascript backbone.js gruntjs grunt-contrib-connect

我有一个在localhost上运行的连接服务器,在我的骨干应用程序中,如果我重新加载一个路由,说localhost:8000/fun服务器返回无法获取/乐趣显然因为/ fun不存在.

不知何故,服务器需要知道如何提供index.html/fun或其他东西.我实际上尝试过,但我得到了一些其他错误.以前有人处理过这个吗?

TL; DR无法获得/乐趣

dez*_*man 9

所以在这里找到了基本的解决方案.

你想要modRewrite:

npm install connect-modrewrite --save-dev
Run Code Online (Sandbox Code Playgroud)

在你的Gruntfile中:

modRewrite = require('connect-modrewrite')
Run Code Online (Sandbox Code Playgroud)

咖啡:

connect:
  server:
    options:
      port: 8765
      open: true
      base: ['./']
      middleware: (connect, options) ->
        middlewares = []

        middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]']))
        options.base.forEach( (base) ->
          middlewares.push(connect.static(base))
        )
        middlewares
Run Code Online (Sandbox Code Playgroud)

香草JS:

connect: {
  server: {
    options: {
      port: 8765,
      open: true,
      base: ['./'],
      middleware: function(connect, options) {
        var middlewares;
        middlewares = [];
        middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]']));
        options.base.forEach(function(base) {
          return middlewares.push(connect["static"](base));
        });
        return middlewares;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)