@ffmpeg/ffmpeg: Uncaught (in promise) ReferenceError: SharedArrayBuffer is not defined
@ffmpeg/ffmpeg: Uncaught (in promise) ReferenceError: SharedArrayBuffer is not defined
我有一个带有 node.js 后端 (monorepo) 的小型 React 应用程序。客户端使用@ffmpeg/ffmpeg,在本地一切正常,但部署到 Heroku 时出现错误 ReferenceError: SharedArrayBuffer is not defined
。当我 运行 ffmpeg.load()
时会发生这种情况。请注意,我仅在 React 应用程序的客户端上使用 ffmpeg。
到目前为止我做了什么:
- 确保我部署的应用程序使用 https
- 在
app.use
中的 setupProxy.js
中添加了这些行(位于客户端目录中)。有关上下文,请参阅
response.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
response.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
- Registered for an origin trial with chrome。这确实有效,但我更喜欢跨浏览器工作的更永久的解决方案。
- 测试调试
crossOriginIsolated
,并验证它在本地 true
但在我部署的站点上 false
。
我的跨源配置似乎有问题,或者它可能只是没有被应用。任何帮助将不胜感激。
我犯了一个愚蠢的错误。问题中提到的 Cross-Origin-* headers 是正确的,他们只需要在后端的 index.js 中,而不是客户端。
我有一个带有 node.js 后端 (monorepo) 的小型 React 应用程序。客户端使用@ffmpeg/ffmpeg,在本地一切正常,但部署到 Heroku 时出现错误 ReferenceError: SharedArrayBuffer is not defined
。当我 运行 ffmpeg.load()
时会发生这种情况。请注意,我仅在 React 应用程序的客户端上使用 ffmpeg。
到目前为止我做了什么:
- 确保我部署的应用程序使用 https
- 在
app.use
中的setupProxy.js
中添加了这些行(位于客户端目录中)。有关上下文,请参阅
response.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
response.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
- Registered for an origin trial with chrome。这确实有效,但我更喜欢跨浏览器工作的更永久的解决方案。
- 测试调试
crossOriginIsolated
,并验证它在本地true
但在我部署的站点上false
。
我的跨源配置似乎有问题,或者它可能只是没有被应用。任何帮助将不胜感激。
我犯了一个愚蠢的错误。问题中提到的 Cross-Origin-* headers 是正确的,他们只需要在后端的 index.js 中,而不是客户端。