sails.js:如何禁用etags

时间:2015-08-18 09:02:01

标签: javascript node.js sails.js etag

我读到这篇关于在sails.js中禁用某些内容的新post并不是很新。具体来说,我想尝试的是禁用etags。

有没有人知道如何在sails.js(0.11.0)中禁用它?

2 个答案:

答案 0 :(得分:4)

您可以在the bootstap.js file中停用它:

// config/bootstrap.js
module.exports.bootstrap = function(cb) {

  // Add this line to access to the Express app and disable etags
  sails.hooks.http.app.disable('etag');

  // It's very important to trigger this callback method when you are finished
  // with the bootstrap!  (otherwise your server will never lift, since it's waiting on the bootstrap)
  cb();
};

答案 1 :(得分:0)

以上答案仅适用于动态文件。对于静态文件,您必须通过将此代码添加到config / https.js文件中来覆盖www中间件

<form method="post" action="{% url 'name-of-new-role-view' %}">
    {% csrf_token %}
    {{ rform }}
    {{ cform }}
    <input type="submit">
</form>

如果您仍然想为缓存控制标头设置一个年龄,则必须使用maxAge。另外请注意,这将覆盖用于定义该年龄的同一http.js文件中的cache选项。

出于我的目的,我只想从/ min文件夹中提供的静态文件中删除etag,这些文件是缩小的css和js文件。为此,我必须在routes.js文件中定义一条路由

www: (function() {
  var flatFileMiddleware = require('serve-static')('.tmp/public', {
    maxAge: 31557600000,
    etag: false
  });

  return flatFileMiddleware;
})(),

如果您需要更多详细信息,请参见https://github.com/balderdashy/sails/issues/5306#issuecomment-508239510