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

SvelteKit如何从assets文件夹下载文件?

在SvelteKit中从assets文件夹下载文件的正确方法

你的问题出在资源路径的引用方式上,以下是两种可行的解决方案:

方案1:使用绝对路径引用

将href改为以/开头的绝对路径,确保无论当前页面处于哪个路由层级,都能正确定位到assets目录下的文件。同时可以移除target="_blank",因为download属性会直接触发下载行为,无需新开窗口:

<a download="my-file.pdf" href="/assets/my-file.pdf">
    Download
</a>

方案2:使用SvelteKit的资源导入(推荐)

通过$assets别名导入文件,SvelteKit会自动处理资源的哈希命名,优化缓存策略:

<script>
    import myFile from '$assets/my-file.pdf';
</script>

<a download="my-file.pdf" href={myFile}>
    Download
</a>

原代码失效原因

你之前使用的相对路径assets/my-file.pdf是基于当前页面URL的相对路径,如果页面处于子路由(比如/about),实际请求的路径会变成/about/assets/my-file.pdf,而该路径下不存在目标文件,因此触发"File wasn't available on site"错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:57:03