为何修改文件后GCloud App Engine部署的SvelteKit网站未更新?
确认构建流程正确执行
本地正常但部署无变化,先检查部署前是否执行了生产构建。确保package.json里的build脚本正确:"scripts": { "build": "svelte-kit build", "start": "node build/index.js" }部署前先本地运行
npm run build,确认build目录生成了最新产物。同时检查app.yaml的entrypoint是否指向构建后的启动文件,比如:runtime: nodejs20 entrypoint: npm start检查部署文件是否包含构建产物
查看.gitignore,如果里面忽略了build、.svelte-kit这类构建目录,部署时这些文件不会被上传到App Engine,导致服务器仍用旧产物。要么修改.gitignore移除这些目录的忽略规则,要么部署时手动指定包含(比如gcloud app deploy --include-files build/**)。清除缓存验证
浏览器可能缓存了旧静态资源,尝试用Ctrl+F5强制刷新。如果是App Engine的CDN缓存问题,可在app.yaml中配置静态资源缓存策略,缩短缓存时间:handlers: - url: /static static_dir: build/static expiration: "10m"确认部署版本为默认版本
执行gcloud app versions list查看所有部署版本,检查最新版本是否设为默认。如果不是,用gcloud app services set-default [服务名] --version [新版本号]将新版本设为默认,或者直接访问新版本专属URL(比如https://[版本号]-dot-[项目ID].uc.r.appspot.com)验证内容是否更新。检查SvelteKit适配器配置
确保使用了适配Node.js的@sveltejs/adapter-node,并在svelte.config.js中正确配置:import adapter from '@sveltejs/adapter-node'; export default { kit: { adapter: adapter() } };错误的适配器会导致构建产物无法在App Engine的Node.js环境正常运行,进而显示旧内容。
内容的提问来源于stack exchange,提问作者DrCool

