【问题标题】:Javascript/CSS File locations for development branch vs production branch开发分支与生产分支的 Javascript/CSS 文件位置
【发布时间】:2012-06-24 15:28:20
【问题描述】:

我已将我的网络服务器设置为大部分情况下遵循common git / web focused workflow

所以我在一个文件夹中有一个开发分支作为子域,在我的根文件夹/域中有一个主分支。

问题在于,在生产环境中,我们合并并缩小主分支 js/css 文件并将它们放在我们的 cdn 上,每次我们更改和缩小文件时,文件名都会更改,因此我们的主分支最终会引用诸如 cdn 之类的东西.example.com/e23ab9.js 这当然会随着我们代码的更新而频繁变化。

但是在我们的开发版本和分支上,我们当然希望只引用未合并和未缩小的文件,以便我们可以不断测试新的修改。

我确信有一种智能/简化的方法可以解决这种情况,因此我们不会在每次更新生产版本时不断地在原始 js/css 文件和新生成的缩小文件名之间来回提交最新的开发版本。

我认为解决方案可能涉及符号链接或类似的东西,但我对它们不太熟悉,更愿意学习它并从一开始就做。

任何建议、提示或方向将不胜感激

谢谢大家

【问题讨论】:

  • 你在 .NET 中工作吗?
  • 没有,但是我们已经通过一个简单的 if 语句暂时解决了这种情况,检查正在访问的页面所在的域,然后加载正确的文件集。现在可以,但我相信有更好的方法

标签: git deployment minify production-environment dev-to-production


【解决方案1】:

jstats,我们管理类似的设置,根据您的评论,这是有道理的。

重申我认为你在这种情况下决定做的事情 -

  1. 您可能会压缩和合并文件,创建一个动态的 & 发送到 CDN 的随机文件名。
  2. [ 在这里猜测的长镜头.. ] - 你以某种方式在服务器上记下(可能是一个类似于 PID 文件但包含随机文件名的文件),你可以在渲染时抓取它以指向 CDN 文件.
  3. 渲染时,检查服务器端代码是否处于生产或开发状态。 3a。如果是生产,请获取类似“PID”的文件并指向缩小的 CDN 文件 3b。如果是开发,加载所有常规资源

这需要一个假设的飞跃,但我之前已经看过那个实现,所以我选择了它:-p

回答您关于更精简版本的问题:

是的,简化此过程的一种好方法是通过 Google Pagespeed Module 之类的方法

然后,只需在您的虚拟主机配置中为您的生产设置进行设置,以允许 Pagespeed 完成它的工作,并在您的开发设置中关闭 Pagespeed!

以这种方式最终变得相对简单。

我确定你已经继续前进,但万一其他人发现了这个问题并正在寻找答案..

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2012-02-18
    • 2014-08-19
    • 1970-01-01
    相关资源
    最近更新 更多