Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Grunt connect服务器返回无法获取/路由主干_Javascript_Backbone.js_Gruntjs_Grunt Contrib Connect - Fatal编程技术网

Javascript Grunt connect服务器返回无法获取/路由主干

Javascript Grunt connect服务器返回无法获取/路由主干,javascript,backbone.js,gruntjs,grunt-contrib-connect,Javascript,Backbone.js,Gruntjs,Grunt Contrib Connect,我有一个运行在localhost上的connect服务器,在我的主干应用程序中,如果我重新加载一条路由,比如localhost:8000/fun,服务器返回时无法获取/fun,因为/fun不存在 不知何故,服务器需要知道如何提供index.html/fun之类的服务。我真的试过了,但我有其他错误。以前有人处理过这个问题吗 TL;DR无法获得/乐趣 您要重写: npm install connect-modrewrite --save-dev 在你的Gruntfile中: modRewrite

我有一个运行在localhost上的connect服务器,在我的主干应用程序中,如果我重新加载一条路由,比如localhost:8000/fun,服务器返回时无法获取/fun,因为/fun不存在

不知何故,服务器需要知道如何提供index.html/fun之类的服务。我真的试过了,但我有其他错误。以前有人处理过这个问题吗

TL;DR无法获得/乐趣

您要重写:

npm install connect-modrewrite --save-dev
在你的Gruntfile中:

modRewrite = require('connect-modrewrite')
咖啡:

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
香草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;
      }
    }
  }
}

已接受的答案不再有效(2015-10-20),因为连接项目结构和connect.static已更改为其自己的包“服务静态”。因此,您必须通过以下方式调整此答案:

npm install serve-static --save-dev
middleware: function(connect, options) {
      var middlewares;
      middlewares = [];
      middlewares.push( modRewrite( ['^[^\\.]*$ /index.html [L]'] ) );
      options.base.forEach( function( base ) {
        return middlewares.push( serveStatic( base ) );
      });
      return middlewares;
    }
在Gruntfile.js中需要它

var serveStatic = require('serve-static');
然后将中间件代码更改为以下内容:

npm install serve-static --save-dev
middleware: function(connect, options) {
      var middlewares;
      middlewares = [];
      middlewares.push( modRewrite( ['^[^\\.]*$ /index.html [L]'] ) );
      options.base.forEach( function( base ) {
        return middlewares.push( serveStatic( base ) );
      });
      return middlewares;
    }
否则它工作得很好!帮了我很多忙