资讯专栏INFORMATION COLUMN

分离开发环境与生产环境的配置文件

LeviDing / 531人阅读

摘要:传统的做法是不把配置文件纳入版本控制系统,然后在线上写好一份正确的配置文件,这样在上线的时候就不会影响到线上的配置文件。而在生产环境下,系统由于读取不到,因此使用的全是中的配置项。

前言:遥想从前在4399,老是有人把自己本地的配置文件commit到线上,然后公司的RTX就开始疯狂轰炸过来:“页面出错了!”、“这数据不对啊!”、“领导要用啊快点修复啊啊啊啊啊”,好吧,这我也是醉了……

最近为了新公司、新项目做技术选型,就完整地看了一遍Laraval的文档,由此得到了一个分离开发环境与生产环境配置文件的重要思路。

传统的做法是:不把配置文件纳入版本控制系统,然后在线上写好一份正确的配置文件,这样在上线的时候就不会影响到线上的配置文件。可惜这永远都只是一个理想的状况,在现实的项目中,总是有人看都不看有哪些文件就直接commit,然后就冲突了……

更好的思路是:先写好一份线上的配置文件,然后再判断当前所处的环境来记载相应的本地配置文件,并覆盖对应的项(例如:可利用PHP中的array_merge),这样的话,即使把本地配置文件上传到线上了,由于配置文件的加载是由判断机制来控制的,自然也就不会去记载本地的配置文件。我推荐用HOST名(例如:PHP的全局变量$_SERVER["SERVER_NAME"])来判断当前所处的环境,下面以我现在的项目作为例子进行说明:

假设生产环境的域名是xxx.com,而本地测试环境的域名由于写了VHOST,是xxx.local.com

下面看我的配置文件目录:

/config

/config/xxx.local.com

/config/xxx.local.com/config.php

/config/config.php

在本地测试环境下,系统根据$_SERVER["SERVER_NAME"],读取到 /config/xxx.local.com/config.php ,并覆盖了 /config/config.php 中的配置项。

而在生产环境下,系统由于读取不到/config/xxx.com/config.php ,因此使用的全是 /config/config.php 中的配置项。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11714.html

相关文章

  • 分离开发环境生产环境配置文件

    摘要:传统的做法是不把配置文件纳入版本控制系统,然后在线上写好一份正确的配置文件,这样在上线的时候就不会影响到线上的配置文件。而在生产环境下,系统由于读取不到,因此使用的全是中的配置项。 前言:遥想从前在4399,老是有人把自己本地的配置文件commit到线上,然后公司的RTX就开始疯狂轰炸过来:页面出错了!、这数据不对啊!、领导要用啊快点修复啊啊啊啊啊,好吧,这我也是醉了…… 最近为了新公...

    incredible 评论0 收藏0
  • webpack多页应用架构系列(七):开发环境生产环境傻傻分不清楚?

    摘要:开发环境和生产环境都拥有的配置,但在细节上有所不同,比如说,又比如说中的和参数。更重要的是,实际上开发环境和生产环境的配置文件的绝大部分都是一致的,对于这一致的部分来说,我们坚决要消除冗余,否则后续维护起来不仅麻烦,而且还容易出错。 本文首发于Array_Huang的技术博客——实用至上,非经作者同意,请勿转载。原文地址:https://segmentfault.com/a/11900...

    paulquei 评论0 收藏0
  • webpack工程化集成React技术栈(一)

    项目开始前,我们先聊一聊关于项目的一些说明。该项目起始于2017年初,当时公司主要技术栈为gulp+angular,鉴于react的火热的生态,在公司决定研发bss管理系统时选用react开发,目的也是为react native打下基础,以解决后期公司大前端技术栈的逐步成熟。(当时没有选择vue开发的主要原因是weex生态还不够特别成熟),既然决定换新,项目的构建也跟着一起换,从gulp转向火热的...

    tianhang 评论0 收藏0
  • 从零到一,新建webpack工程

    摘要:指定启用例如上述代码,就使用和处理了除了以外的。设置当前的为,同样这个配置也可以写在中。设置目录删除注释去除空格去除属性引号复制静态目录将所以可能被请求的静态文件,分别放在目录下。结语本次从零到一,新建了一个脚手架。 react-sample-javascript 为了实现一个可定制化高的react工程,我们往往会自己搭建一个react工程。所以本文会从零开始搭建一个react脚手架工...

    Code4App 评论0 收藏0
  • 最简单前后端分离部署(Koa2)

    摘要:既然前段工程化是基于,那么选择做前后端分离部署也是理所应当的。有了这三个东西,我们就可以搭建出最简单的前端服务器了。 前后端分离开发应该已经是很多公司的标配了,然而,在前端工程化的体系下,开发环境代码和生产环境代码往往是平级的,不再是整个文件夹往服务器上一扔就了事,这让每次的部署过程相当繁琐。 如下是常见的项目目录: Project └──javaSrc └──app ...

    SegmentFault 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<