7

默认情况下,运行 yeoman 服务器似乎无法识别 .htaccess 文件。是否有额外的步骤可以读取 .htaccess 文件?

以下是我未注释的行,重启后对设置标题没有明显影响:

    #------------------------------------------------ ---------------------
    # 跨域 AJAX 请求
    #------------------------------------------------ ---------------------

    # 服务跨域 Ajax 请求,默认禁用。
    # enable-cors.org
    # code.google.com/p/html5security/wiki/CrossOriginRequestSecurity

    <IfModule mod_headers.c>
      标头集 Access-Control-Allow-Origin "*"
    </IfModule>

或者也许正确的问题是在运行 yeoman 服务器时如何设置标头?还有另一种选择,也许在 Gruntfile.js 中?

4

1 回答 1

22

grunt server只是一个 Node.js连接服务器,不支持 .htaccess

虽然由于grunt-contrib-connect支持自定义中间件,但您可以将其添加到 Gruntfile.js 中:

var corsMiddleware = function(req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
  next();
}

grunt.initConfig({
  connect: {
    server: {
      options: {
        middleware: function(connect, options) {
          return [
            // Serve static files
            connect.static(options.base),
            // Make empty directories browsable
            connect.directory(options.base),
            // CORS support
            corsMiddleware
          ];
        }
      }
    }
  }
});
于 2013-01-31T10:09:04.290 回答