使用adapter-node部署SvelteKit时Immutable文件夹404问题求助
解决SvelteKit Node适配器部署时资源路径缺失/build/导致的404错误
问题原因
你的应用部署在服务器的/var/www/websitename.com/html/build/目录下,但SvelteKit生成的资源链接未包含/build前缀,导致浏览器请求路径与实际文件位置不匹配,触发404错误。
解决方案
1. 配置paths.base指定基础路径
修改svelte.config.js,在kit选项中添加paths.base并设置为/build。这个参数会让SvelteKit自动为所有资源链接加上该前缀:
import adapter from '@sveltejs/adapter-node'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter({ out: 'build' }), paths: { base: '/build' } } }; export default config;
2. 确认服务器静态资源映射(若用反向代理)
如果使用Nginx等反向代理,需配置正确映射/build路径到实际静态资源目录:
location /build { alias /var/www/websitename.com/html/build/client; try_files $uri $uri/ =404; } location / { proxy_pass http://localhost:3000; # 替换为你的Node服务运行端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
3. 重新构建部署
执行npm run build重新生成构建产物,将build目录上传到服务器对应路径,重启Node服务即可。
补充说明
adapter-node的out选项仅控制构建产物的输出目录,不会影响资源链接前缀的生成。资源路径前缀由kit.paths.base参数决定,这是解决此类路径匹配问题的核心配置。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

