如何修改Astro内置图片优化生成的_astro图片文件夹位置?
修改Astro内置图片优化的输出路径方案
Astro内置图片优化生成的文件默认存在dist/_astro,build.assets配置仅能修改CSS/JS这类资源的输出目录,而base配置只是控制页面中资源的URL前缀,不会改变本地构建后的文件存放路径。针对你多微站点部署在同一域名子文件夹的需求,可以通过Astro底层的Vite配置来自定义图片输出路径:
在astro.config.mjs中添加Vite的Rollup输出配置,精准指定图片资源的输出位置:
export default defineConfig({ build: { assets: 'custom-name', // 保留原有CSS/JS资源的自定义路径配置 }, vite: { build: { rollupOptions: { output: { assetFileNames: (assetInfo) => { // 匹配图片格式的资源,指定输出到blog/_astro目录 if (assetInfo.name?.match(/\.(png|jpe?g|gif|svg|webp)$/i)) { return 'blog/_astro/[name]-[hash][extname]'; } // 非图片资源沿用build.assets指定的路径 return 'custom-name/[name]-[hash][extname]'; }, }, }, }, }, });
这个配置通过Rollup的assetFileNames钩子,判断资源类型后给图片单独分配输出目录,构建后图片就会出现在dist/blog/_astro下,完美适配你的子站点部署场景。如果需要给不同微站点配置不同的子路径,直接修改return 'blog/_astro/...'中的blog部分即可,比如换成docs、shop等。
内容的提问来源于stack exchange,提问作者Fenton
相关产品推荐
相关产品推荐

