Heim  >  Artikel  >  Backend-Entwicklung  >  javascript - CDN上如何 解决实现 JS/CSS自动压缩方案?(通过 JSMinify)

javascript - CDN上如何 解决实现 JS/CSS自动压缩方案?(通过 JSMinify)

WBOY
WBOYOriginal
2016-06-06 20:41:10967Durchsuche

需求说明

网站 www.xxx.com,环境WIN64 WAMP,分布3太服务器,主1台,次3台。里面用到的图片/CSS/JS 都放在 www.xxx.com/Public/ 目录下。需求是网站中引入到的/Public 目录下的JS/CSS 都会自动压缩,利于打开速度。

原方案

通过JSMInify + htaccess,把访问 /Public 目录中的JS/CSS 的请求地址指向 JSMinify 中的PHP ,然后通过JSMinify包进行自动压缩。这样程序员和设计上传CSS JS就无需做任何操作。很方便。

需求变更

先要求将 /Public 中的资源全部转移到CDN 服务器。CDN服务器配置 LN(Linux + Nignx),不支持PHP 不支持 htaccess。如何将工作量做到最小?

个人方案

<code>1)每次上传Public 中的CSS/JS 先试用Notepad++ 中的JSMini插件进行压缩格式化。然后再传
不足:网站仍旧大改动中,每次都可能修改很多JS CSS,如果一个个压缩,很可能遗漏或者有些错误。

2)自己试用JSMinify 制作一个插件,扫描指定目录中的JS/CSS 文件,然后压缩后存放。
不足:仍旧是需要手动操作,且制作这个插件需要花费一定时间。

3)寻找网络上的批量压缩工具
问题:目前没有找到。

</code>

连接

<code>Google JSMinfiy:https://code.google.com/p/minify/
</code>

如何才可以简化?


我现在使用的方案是自己本地用PHP建立一个脚本,将Public 目录的 资源(非CSS/JS)全都复制到另外一个目录,CSS/JS 就采用 http://localhost/min/index.php?filename=$filename 的方式下载保存。有点简单粗暴,但是省略了在minify类库上创建程序的麻烦。

回复内容:

需求说明

网站 www.xxx.com,环境WIN64 WAMP,分布3太服务器,主1台,次3台。里面用到的图片/CSS/JS 都放在 www.xxx.com/Public/ 目录下。需求是网站中引入到的/Public 目录下的JS/CSS 都会自动压缩,利于打开速度。

原方案

通过JSMInify + htaccess,把访问 /Public 目录中的JS/CSS 的请求地址指向 JSMinify 中的PHP ,然后通过JSMinify包进行自动压缩。这样程序员和设计上传CSS JS就无需做任何操作。很方便。

需求变更

先要求将 /Public 中的资源全部转移到CDN 服务器。CDN服务器配置 LN(Linux + Nignx),不支持PHP 不支持 htaccess。如何将工作量做到最小?

个人方案

<code>1)每次上传Public 中的CSS/JS 先试用Notepad++ 中的JSMini插件进行压缩格式化。然后再传
不足:网站仍旧大改动中,每次都可能修改很多JS CSS,如果一个个压缩,很可能遗漏或者有些错误。

2)自己试用JSMinify 制作一个插件,扫描指定目录中的JS/CSS 文件,然后压缩后存放。
不足:仍旧是需要手动操作,且制作这个插件需要花费一定时间。

3)寻找网络上的批量压缩工具
问题:目前没有找到。

</code>

连接

<code>Google JSMinfiy:https://code.google.com/p/minify/
</code>

如何才可以简化?


我现在使用的方案是自己本地用PHP建立一个脚本,将Public 目录的 资源(非CSS/JS)全都复制到另外一个目录,CSS/JS 就采用 http://localhost/min/index.php?filename=$filename 的方式下载保存。有点简单粗暴,但是省略了在minify类库上创建程序的麻烦。

为什么不用grunt或者gulp实现自动化压缩

CDN 可以做镜像备份吗?资源还放在源站上,请求去请求 CDN,CDN 上面没有资源的话,让 CDN 去源站同步。做好回源策略。

我是用的yeoman脚手架

與我同樣懶,連運行一下自動壓縮都不願意,也懶得寫插件(不過我倒是寫過代碼壓縮。。。)

不過支持自動壓縮與緩存的CDN也不是沒有啊,比如 Cloudflare。這無疑是最快最好的解決方案。

如果不能換CDN,CDN又不支持自定義的環境,本地壓縮就是唯一的解決方案,那麼可以考慮修改上傳用的腳本,實現真正自動壓縮。

總之啦,要麼時間花在寫程序上,要麼時間花在把自己變成程序一樣機械化執行命令上,要麼把時間花在尋求幫助上。

哪個最省事你已經知道了。

不過回答者大概也像你一樣懶?如果過幾天還沒有人提供完美解決方案,我就花幾分鐘幫你寫一個。真的很容易啦。

佔坑。

可以试试Google出的nginx插件pagespeed!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn