PHP中的打包、缓存、JS和CSS,区分开发环境和生产环境
我正在努力使开发变得容易,并在生产中实现高度优化产量 我尝试做的目标是:PHP中的打包、缓存、JS和CSS,区分开发环境和生产环境,php,javascript,css,optimization,deployment,Php,Javascript,Css,Optimization,Deployment,我正在努力使开发变得容易,并在生产中实现高度优化产量 我尝试做的目标是: 快速制作制作页面我希望谷歌页面速度和YSlow返回最佳分数。这意味着: 组合并压缩JS文件和CSS,并将组定位在HTML中正确的位置(页面底部或顶部)。对于.js来说,Google闭包似乎是最好的选择 .JS和.CSS被智能缓存,但请确保在更新.JS或CSS组件时重新加载它们。301文件未更改等 缓存类型:我认为磁盘上的缓存很好。考虑APC和MeMax或ReDIS,如果它们显著提高速度。 能够在必要时指定并使用.JS的延
- 快速制作制作页面我希望谷歌页面速度和YSlow返回最佳分数。这意味着:
- 组合并压缩JS文件和CSS,并将组定位在HTML中正确的位置(页面底部或顶部)。对于.js来说,Google闭包似乎是最好的选择
- .JS和.CSS被智能缓存,但请确保在更新.JS或CSS组件时重新加载它们。301文件未更改等
- 缓存类型:我认为磁盘上的缓存很好。考虑APC和MeMax或ReDIS,如果它们显著提高速度。
- 能够在必要时指定并使用.JS的延迟加载,或者至少不阻止页面呈现
- (可选)也压缩HTML
- 使网站开发变得简单:
- 当您希望包含.js或.css并仅在生产环境中压缩它们时,请在.php文件中使用short命令
- 使用pack_js(['first.js','second.js''third.js'])和pack_css(['first.less','second.less''third.css'],true)
- 很容易配置开发或生产环境。可能只是调用SetDebug(true或false)默认产量
- 易于设置缓存文件夹和源文件夹
- 使用LESS来减少CSS开发的麻烦。在生产环境中自动在CSS中编译较少的文件,但在开发环境中使用LESS.js,这样每次在开发环境中更改.LESS文件时,它都会在服务器上更新
- (可选)在开发中,它包括一个JS和一个更少的控制台,类似于
<script type="text/javascript" src="static/js/first.js"></script>
<script type="text/javascript" src="static/js/second.js"></script>
<script type="text/javascript" src="static/js/third.js"></script>
<link rel="stylesheet/less" href="/static/css/first.less" type="text/css" />
<link rel="stylesheet/less" href="/static/css/second.less" type="text/css" />
<link href="/static/css/third.css" type="text/css" />
<script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>
<script type="text/javascript" charset="utf-8">
less.env = "development";
less.watch();
</script>
在生产服务器上(如果不存在特殊cookie):
另一个函数:pack_css(['first.less','second.less','third.css'],true)它编写如下内容:
在服务器上:
<script type="text/javascript" src="static/js/first.js"></script>
<script type="text/javascript" src="static/js/second.js"></script>
<script type="text/javascript" src="static/js/third.js"></script>
<link rel="stylesheet/less" href="/static/css/first.less" type="text/css" />
<link rel="stylesheet/less" href="/static/css/second.less" type="text/css" />
<link href="/static/css/third.css" type="text/css" />
<script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>
<script type="text/javascript" charset="utf-8">
less.env = "development";
less.watch();
</script>
less.env=“开发”;
少看(;
在生产服务器上(如果不存在特殊cookie):
第二个参数指定是否应在开发服务器上输出less.js
显然,12a42323bfe339ea9w.js和46537a8b8e876f7a8e7.css是脚本的优化、打包和编译版本。此解决方案应该能够检测源文件何时更改,并重新编译用于生产的脚本。它应该可以配置为与脚本的位置和缓存类型有关(磁盘可以)。理想情况下,pack_js应该有一个选项,可以在生产中延迟加载js
欢迎所有建议。为什么不使用项目构建系统将应用程序部署到生产服务器上呢?对于PHP,您可能会喜欢,因为它允许您在PHP中编写额外的插件,您可以在部署时执行这些插件。你可能想考虑的其他选项是,(还有很多其他的),但是这些需要其他语言的知识(当然,如果你真的想……,你可以从他们开始PHP解析器)。p> 我使用过一个具有类似需求的流程,但我们采用了一些不同的方法。我意识到这可能并不完全是你想要的,但我还是会提出一些建议:
我意识到这与您的预期有点不同,但根据我的经验,这将导致一个更强大的开发促进模式。仍在努力探索利用现有资源的最佳解决方案 CSS JS助推器和涡轮机到目前为止看起来是最好的起点:和 其他JS/CSS组合器解决方案和文章
- 很好,但似乎有点难以配置
- 让你像这样使用sintax:(不完全是最好的)我也认为我看到了这个补丁