SvelteKit 在新创建的静态文件上构建(带适配器节点)404

New*_*ewe 6 javascript node.js svelte svelte-3 sveltekit

使用@sveltejs/adapter-node: 1.0.0-next.61@sveltejs/kit: ^1.0.0-next.225

以下问题仅发生在应用程序的构建版本上,而不会发生在开发服务器上,在开发服务器上不会发生此问题。

上传新文件时,我的应用程序不断返回关于这些新创建的文件的 404 错误,就好像该应用程序对这些文件视而不见。有趣的是,重新启动服务器时会发现所述图像。

创建请求成功:发布请求 200

该文件已在文件系统上正确创建,并且应该由页面加载,如 json 响应中所示,该响应列出了页面上要加载的所有文件:文件已存在

然而,当尝试获取该文件时,服务器会返回 404 响应,尽管该文件的路径是正确的:404

Jac*_*ace 1

实际上我找到了两个解决方案,但这两个解决方案都只是解决这个非常烦人的问题。

  • 导入方式:正确配置它是相当棘手的(另请阅读本文),总的来说,如果您需要导入动态路径(导入路径中包含变量),就像我的情况一样,它会变得很痛苦

  • 方法CDN:通过将静态文件夹指向具有专用(子)域的网络服务器,将静态文件夹用作 CDN。通过这种方式,您可以成功链接资产,因为它们是“外部”资源(例如https://cdn.mysite.com/file1.pnghttps://cdn.mysite.com/file2.jpg)。

额外奖励:如果您选择 CDN 解决方法,最好将handleFetch设置为绕过外部 DNS 解析并在内部保留流量。