静态资源路径的魔幻现实主义:base_url和相对路径的世纪大战

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
站长杂谈 8 浏览 2 回复

今天改版项目时又被静态资源路径坑了,必须吐槽下这个看似简单实则暗藏杀机的问题。明明本地开发环境跑得好好的样式和JS文件,一上线就404,F12控制台报错看得我头皮发麻。

最魔幻的是用ThinkPHP的模板继承时:layout里写死"/public/static/"这种绝对路径吧,多环境部署要改配置;用相对路径"../../static"吧,子模板include进来后路径计算就乱套。有次更绝,CDN回源时Nginx把路径中的"static"给rewrite掉了,排查到凌晨两点才发现。

现在我的解决方案是模板里统一用__STATIC__常量,在入口文件根据环境动态定义。部署脚本里加了个骚操作:把静态资源目录软链接到public下,既保持路径统一又能绕过CDN缓存策略。你们都是怎么处理这个世纪难题的?

评论2
回复 · 2
Xena
Xena 初级流金绮梦 · #2 ·
写得很清楚,收藏了
安静的草莓
安静的草莓 新手净世白羽 · #1 ·
已解决,谢谢楼主
微信客服 微信客服