https://github.com/hyperbotauthor/vue-chessground/tree/main/test
我的问题是,我必须将自定义头添加到我的Nuxt页面中,这样SharedArrayBuffer
才能工作。
我知道如何将自定义头添加到从static
文件夹和生产服务器提供的资产中:
render: {
static: {
setHeaders(res) {
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
},
},
dist: {
setHeaders(res) {
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
}
}
},
但是,在dev服务器中,这些标头没有添加到从pages
文件夹提供的Nuxt页面中。
如果我在static
文件夹中手动编写HTML页面,那么SharedArrayBuffer
将在该页面上工作。但在Nuxt页面上没有。
有没有办法让Nuxt服务器向Vue呈现的页面添加标题?
编辑:
如果我包括手写的手,将iframe
中的HTML从Vue页面中分离出来,那么它也不会起作用。
编辑:
我在Nuxt开了一期报纸:
发布于 2022-04-28 12:27:38
您还需要将标题添加到页面的响应中。当您尝试加载静态资源以及nuxt页面时,尝试使用Postman或类似于查看响应头的工具进行测试。
在render: { static: ... }
中设置nuxt.config.ts
可用于静态资源。
要为服务器设置创建初始html页面的中间件,您可以这样做:
// middleware/setSameOriginHeader.ts
export default function (req: any, res: any, next: any) {
res?.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
res?.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
}
// nuxt.config.ts
export default {
ssr: false,
...
// middleware to set headers on pages
serverMiddleware: ['~/middleware/setSameOriginHeaders.ts'],
// set headers on resources in static dir
render: {
static: {
setHeaders(res: any) {
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
}
}
},
...
}
https://stackoverflow.com/questions/69657677
复制相似问题