在部署时自动交换JavaScript库URL

时间:2011-04-24 20:45:53

标签: javascript git deployment cdn

我正在构建一个纯客户端基于JavaScript的Web应用程序,我正在寻求优化工作流程,以便切换到我在生产服务器上使用的JavaScript库的CDN URL。

为了能够离线工作,我的笔记本电脑开发机器从本地Web服务器上的/js文件夹加载所有库。当我部署应用程序时,我想用这些URL代替在Google上使用jQuery库的CDN版本,例如..由于没有服务器端逻辑,我无法检查Rails.env.production之类的东西?就像我想要一个Rails应用程序一样。

我正在通过在生产计算机上推送git repo并运行post-receive hook进行部署。我想我可以运行某种sed例程,在相同的post-receive脚本中通过更新切换URL,但是如果没有更优雅的解决方案,我很好奇。

最简单的方法是简单地将客户端逻辑放入应用程序以检查它被称为表单的主机名,但我希望将其作为最后的手段。

此前有一个关于fallback loading的讨论,但更广泛的意义是我的问题是在部署到生产机器时自动交换另一个文本块。

2 个答案:

答案 0 :(得分:1)

您希望在您要发布的分支上提交具有指向CDN版本的指针的更改。

将具有开发版本的更改提交给开发分支。

假设这是您的分支机构不同的唯一方式,请与"我们的"合并。两个分支机构的战略。

git merge -s ours mainbranch

这将确保您从现在开始无法在合并或改组的任何地方获得代码更改。

希望这会有所帮助。

答案 1 :(得分:0)

您可以通过将CDN主机添加到/etc/hosts

来简单地让CDN主机在本地工作

如果这不是一个选项,请使用内联JavaScript将<script src="..."标记添加到文档中,并根据该脚本确定是否使用CDN。