Firebase托管无法访问public文件夹外文件的解决方案咨询
Firebase托管路径问题的解决方案
方案1:调整项目结构(最推荐)
Firebase托管默认把/public作为部署后的根目录,最直接的解决方式是把所有前端资源(CSS、JS、页面文件、图片等)都移到/public目录下。之后把index.html里的资源引用路径中的../去掉,改成基于/public的相对路径即可。比如原来写../css/style.css,现在如果css文件夹在public/css下,直接写css/style.css就能正常访问。
方案2:修改firebase.json自定义部署根目录
要是不想移动文件,可以修改firebase.json配置,把部署根目录改成你实际存放资源的目录。比如你的资源都在/src文件夹里,就把配置改成这样:
{ "hosting": { "public": "src", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } }
改完之后重新执行firebase deploy --only hosting,让新配置生效。
方案3:重写规则映射路径(特殊场景用)
如果部分资源必须放在public目录外,可以通过Firebase的重写规则来映射路径。比如要把../css下的资源映射到访问路径/css,就在firebase.json里添加这段配置:
{ "hosting": { "public": "public", "rewrites": [ { "source": "/css/**", "destination": "../css/**" } ], "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } }
不过这种方式不推荐,会增加配置复杂度,而且Firebase对public外的文件访问有默认限制,容易出现部署或权限问题。
内容的提问来源于stack exchange,提问作者user16558728
相关产品推荐
相关产品推荐

