我试图快速指向正在运行hapijs并从/assets/
提供静态文件的heroku实例。我的路线设置如下:
// Assets
{
method: "GET",
path: "/assets/{path*}",
config: {
cache: {
privacy: 'public',
expiresIn: 31536000000 // 1 year in milliseconds
}
},
handler: {
directory: { path: './public/assets'}
}
},
以下是每个请求发回的标题:
HTTP/1.1 200 OK
content-type: text/css; charset=utf-8
last-modified: Thu, 22 Jan 2015 07:08:07 GMT
etag: "9c7d48799e5230b7c97ef1978b81ad533c10b950"
set-cookie: csrf=xyz; Path=/
set-cookie: session=xyz; Path=/
cache-control: max-age=31536000, must-revalidate, private
Date: Thu, 22 Jan 2015 07:21:15 GMT
Connection: keep-alive
如何在此点的响应中设置Cookie,为什么cache-control
标头设置为must-revalidate
和private
。难道它只是公开吗?
答案 0 :(得分:0)
我终于解决了这个问题。我有一些设置Cookie的插件:yar
,hapi-auth-cookie
和crumb
。遗憾的是,还没有任何标准方法可以从特定路径中删除插件。
crumb
允许您在注册选项中添加skip
功能,以禁用它。
auth
让我们通过设置auth: false
在路线配置中停用它。
yar
还没有任何机制可以执行此操作,所以我提交了一个PR来修复它
答案 1 :(得分:0)
在认为响应存储在缓存中之前,您还可以通过Fastly删除Cookie。为此,您需要执行以下配置步骤:
内容 - >头:
姓名Remove Set-Cookie from /assets
输入:Cache
行动:Delete
目的地:http.Set-Cookie
在新生成的标题配置:设置 - >缓存条件 - >
新
姓名:/assets
申请时:req.url ~ "^/assets/"
这将删除Set-Cookie
标题,然后才能看到""""通过Fastly,可以使其安全。