热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

需求说明

网站 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。如何将工作量做到最小?

个人方案

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

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

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

连接

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

如何才可以简化?


我现在使用的方案是自己本地用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。如何将工作量做到最小?

个人方案

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

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

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

连接

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

如何才可以简化?


我现在使用的方案是自己本地用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!

推荐阅读
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
author-avatar
回__复卷轴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有