使用adapter-static构建Svelte SPA部署SharePoint遇404问题求助
解决方案
1. 同步SvelteKit核心配置与adapter-static的base路径
仅配置adapter的base是不够的,需要同时在kit.paths中设置相同的base值,这样生成的所有静态资源路径才会统一遵循相对路径规则。修改svelte.config.js如下:
import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { paths: { // 若部署在SharePoint子站点,替换为子站点的相对路径,比如'/sites/your-project/' base: './' }, adapter: adapter({ pages: 'build', assets: 'build', fallback: '200.html', base: './' }) } }; export default config;
2. 统一内部路由与资源引用的相对路径规范
- 前端路由跳转避免使用绝对路径(如
/about),改用相对路径写法(如../about); - 静态资源(图片、自定义样式)优先使用
$lib别名或相对路径引用,禁止以/开头的绝对路径。
3. 配置SharePoint的路由回退规则
SharePoint静态托管环境需要将所有路由请求重定向到200.html,才能支持SPA的前端路由:
- 进入SharePoint站点设置,找到网站设置 > 错误页面;
- 将404错误页面指向你部署的
200.html完整路径(比如/sites/your-site/200.html)。
4. 重新构建并验证资源路径
执行npm run build后,检查build/_app/immutable/下的JS文件,确认其中的资源引用均为./开头的相对路径。若仍存在绝对路径,排查是否有第三方库硬编码路径,可通过vite.config.js的resolve.alias配置修正。
内容的提问来源于stack exchange,提问作者jparanich
相关产品推荐
相关产品推荐

