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

SvelteKit如何对外提供静态JS文件服务?

解决方案及问题分析

首先,你原来的文件存放位置不符合框架规范——结合Node适配器的SvelteKit场景中,src目录下的文件默认属于源码范畴,会被构建工具处理,不会直接复制到build目录。而供外部访问的独立静态脚本,应该放在项目根目录的static/文件夹下,这是框架约定的静态资源存放位置。

最优解决办法:调整文件位置

把src/lib/static/embed.js移动到项目根目录的static/文件夹下,比如static/embed.js。

  • 开发模式下,访问路径变为/embed.js
  • 执行yarn build后,该文件会被自动复制到build文件夹根目录,生产环境同样可以通过/embed.js访问

若不想移动文件,可通过配置实现复制

如果坚持保留原文件位置,需要在vite配置中添加复制规则:

  1. 先安装依赖:
yarn add rollup-plugin-copy --dev
  1. 修改svelte.config.js:
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import copy from 'rollup-plugin-copy';

export default defineConfig({
  plugins: [
    sveltekit(),
    copy({
      targets: [
        { src: 'src/lib/static/embed.js', dest: 'build' }
      ],
      hook: 'writeBundle' // 在构建完成后执行复制
    })
  ]
});

额外说明

你的embed.js是供其他网站引用的独立脚本,完全不需要参与项目的编译打包,所以放在static/目录是最合理的选择,既符合框架规范,也能避免额外的配置成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:42:40