Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署时自动交换JavaScript库URL_Javascript_Git_Deployment_Cdn - Fatal编程技术网

部署时自动交换JavaScript库URL

部署时自动交换JavaScript库URL,javascript,git,deployment,cdn,Javascript,Git,Deployment,Cdn,我正在构建一个纯粹基于客户端JavaScript的web应用程序,并希望优化工作流程,以便为我在生产服务器上使用的JavaScript库切换到CDN URL 为了能够脱机工作,我的笔记本电脑开发机器从本地web服务器上的/js文件夹加载所有库。当我部署应用程序时,我想替换这些URL以使用Google上jQuery库的CDN版本。例如,由于没有服务器端逻辑,我无法在那里检查Rails.env.production之类的内容?如果这是Rails应用程序,我也会这么做 我通过在生产机器上推动git回购

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

为了能够脱机工作,我的笔记本电脑开发机器从本地web服务器上的
/js
文件夹加载所有库。当我部署应用程序时,我想替换这些URL以使用Google上jQuery库的CDN版本。例如,由于没有服务器端逻辑,我无法在那里检查Rails.env.production之类的内容?如果这是Rails应用程序,我也会这么做

我通过在生产机器上推动git回购并运行。我想我可以运行某种sed例程,在相同的post-receive脚本中切换URL更新,但我很好奇是否有更优雅的解决方案

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


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

您只需将CDN主机添加到您的
/etc/hosts
中,就可以让它在本地工作


如果这不是一个选项,请使用内联JavaScript添加
,您只需将CDN主机添加到您的
/etc/hosts
,即可使其在本地工作


如果这不是一个选项,请使用内联JavaScript添加要提交的更改,该更改的指针指向将要发布的分支上的CDN版本

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

假设这是您的分支区别的唯一方式,请在两个分支上使用“我们的”策略合并

git merge -s ours mainbranch
这将确保从现在起,无论您在何处合并或重新基址,都不会发生代码更改


希望这有帮助。

您希望提交更改,该更改的指针指向要发布的分支上的CDN版本

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

假设这是您的分支区别的唯一方式,请在两个分支上使用“我们的”策略合并

git merge -s ours mainbranch
这将确保从现在起,无论您在何处合并或重新基址,都不会发生代码更改


希望这能有所帮助。

您是否尝试过使用诸如ANT之类的构建工具从本地环境部署到生产环境?在您刚刚提到ANT之前,我并不熟悉它,从他们的文档来看,它似乎是一个庞大的工具,最终会导致我调用sed脚本,我也可以在git的post receive hook中这样做。您是否尝试过使用构建工具(如ANT)从本地环境部署到生产环境?在您刚刚提到ANT之前,我对ANT并不熟悉,从他们的文档来看,它似乎是一个庞大的工具,最终会导致我调用sed脚本,我也可以在git的post-receive钩子中这样做。修改hosts文件假设我将缓存主机提供的任何文件,这是一个很大的假设。后者可以工作,但实际上限制了脚本加载的范围。我正在寻找一种更通用的方法,允许我在推送生产环境后修改内容。修改主机文件假设我将缓存主机提供的任何文件,这是一个很大的假设。后者可以工作,但实际上限制了脚本加载的范围。我正在寻找一种更通用的方法,它允许我在推送生产环境后修改内容。adymitruk说,这是一个很好的、省力的解决方案。很不错的!adymitruk,这是一个很好的、省力的解决方案。很不错的!