我们后端采用的 PHP 框架 CI ,图片, CSS 以及 JS 等原本都是在自己服务器上的。
最近想做一些优化,加上 CDN ,采用的是阿里云 OSS + 阿里云的 CDN ,主要思路如下:
1.前端用 webpack build ,将 css 合并压缩, js 也进行压缩,
然后计算出 hash 值,文件名被命名为 main.[hash].js 之类,然后存一张索引表,映射
main.js => main.[hash].js 之间的关系,所有页面引用 main.js 都更改为<?=_R('main.js')?>
通过_R 这个 php 函数去读取映射表从而找到真正的文件名。 js 和 css 都这么处理,然后每次发布时,
比对映射表,发现新增或者有变化的同步到阿里云 OSS ,然后刷新 CDN 。
2.图片方面,用另外的一个域名 image.xxx.com,然后绑定阿里云的 OSS 图片服务器。为了开发方便,
目前所有的图片资源都放在 /assert/image 底下,利用 nginx 的 rewrite 机制,将对这个 url 下的请
求都发送到 image.xxx.com 上去。代码里还是用 src="/assert/image/aa.png",没有改成 image.xxx.com/assert/image/aa.png 。这样虽然开发调试方便了,但是却引起了很多 302 重定向,
似乎也很不好?发布的时候同样需要比对 /assert/image 下修改增加的东西,同步到 OSS 并刷新 CDN 。
小弟对这方面了解不多,不知道这么搞有什么大的问题吗? 或者有更好的解决方法或者工具?最近十分苦恼,真诚求教。