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

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

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

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

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

评论11
回复 · 11
韩琳博
韩琳博 初级清瑶问鼎 · #11 ·
感谢分享!
KateStar
KateStar 初级 · #10 ·
已解决,谢谢楼主
YukiRain
YukiRain 新手 · #9 ·
学到了,顶一下
Blake
Blake 初级赏金猎人 · #8 ·
支持了~
予安
予安 初级 · #7 ·
学到了,顶一下
安静的柚子
安静的柚子 初级赤羽栖云 · #6 ·
感谢分享!
自由的海盐
自由的海盐 初级心屿荧途 · #5 ·
学到了,顶一下
温柔的橙子
温柔的橙子 初级璃海华章 · #4 ·
支持了~
何华悦
何华悦 初级 · #3 ·
支持了~
Xena
Xena 初级流金绮梦 · #2 ·
写得很清楚,收藏了
安静的草莓
安静的草莓 初级净世白羽 · #1 ·
已解决,谢谢楼主
微信客服 微信客服 QQ官方交流群 QQ官方交流群