You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过虚拟主机服务部署SvelteKit并生成可上传的打包文件?

如何用SvelteKit导出可上传虚拟主机的静态文件

针对你的情况,SvelteKit需要通过配置静态适配器来生成可直接上传的静态文件,步骤如下:

  • 安装静态适配器
    首先安装适配静态部署的插件:

    npm install @sveltejs/adapter-static --save-dev
    
  • 修改SvelteKit配置文件
    打开svelte.config.js,替换默认适配器为静态适配器,并添加关键配置确保路由正常工作:

    import adapter from '@sveltejs/adapter-static';
    
    /** @type {import('@sveltejs/kit').Config} */
    const config = {
    	kit: {
    		adapter: adapter({
    			pages: 'build',
    			assets: 'build',
    			fallback: 'index.html' // 让所有路由请求回退到index.html,适配客户端路由
    		}),
    		prerender: {
    			default: true // 预渲染所有页面为静态HTML
    		},
    		trailingSlash: 'always' // 根据主机需求调整,确保路由匹配
    	}
    };
    
    export default config;
    
  • 生成静态打包文件
    执行build命令,SvelteKit会在build目录生成包含index.html的完整静态文件:

    npm run build
    
  • 上传到虚拟主机
    将build目录下的所有文件,通过FTP上传到你的虚拟主机根目录/httpdocs。

  • 更新.htaccess文件
    替换原有的规则,确保所有非文件/目录的请求都指向index.html,让SvelteKit处理客户端路由:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.html [NC,L]
    

补充说明

  • 如果你的虚拟主机对路由尾部斜杠有要求,可以调整svelte.config.js中的trailingSlash选项,可选值为always、never或ignore。
  • fallback: 'index.html'是核心配置,确保访问直接路由(比如/about)时能正确加载应用并处理路由。

内容的提问来源于stack exchange,提问作者Mielipuoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:35:23