摘要:傳統(tǒng)的做法是不把配置文件納入版本控制系統(tǒng),然后在線上寫好一份正確的配置文件,這樣在上線的時(shí)候就不會(huì)影響到線上的配置文件。而在生產(chǎn)環(huán)境下,系統(tǒng)由于讀取不到,因此使用的全是中的配置項(xiàng)。
前言:遙想從前在4399,老是有人把自己本地的配置文件commit到線上,然后公司的RTX就開(kāi)始瘋狂轟炸過(guò)來(lái):“頁(yè)面出錯(cuò)了!”、“這數(shù)據(jù)不對(duì)??!”、“領(lǐng)導(dǎo)要用啊快點(diǎn)修復(fù)啊啊啊啊啊”,好吧,這我也是醉了……
最近為了新公司、新項(xiàng)目做技術(shù)選型,就完整地看了一遍L(zhǎng)araval的文檔,由此得到了一個(gè)分離開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境配置文件的重要思路。
傳統(tǒng)的做法是:不把配置文件納入版本控制系統(tǒng),然后在線上寫好一份正確的配置文件,這樣在上線的時(shí)候就不會(huì)影響到線上的配置文件。可惜這永遠(yuǎn)都只是一個(gè)理想的狀況,在現(xiàn)實(shí)的項(xiàng)目中,總是有人看都不看有哪些文件就直接commit,然后就沖突了……
更好的思路是:先寫好一份線上的配置文件,然后再判斷當(dāng)前所處的環(huán)境來(lái)記載相應(yīng)的本地配置文件,并覆蓋對(duì)應(yīng)的項(xiàng)(例如:可利用PHP中的array_merge),這樣的話,即使把本地配置文件上傳到線上了,由于配置文件的加載是由判斷機(jī)制來(lái)控制的,自然也就不會(huì)去記載本地的配置文件。我推薦用HOST名(例如:PHP的全局變量$_SERVER["SERVER_NAME"])來(lái)判斷當(dāng)前所處的環(huán)境,下面以我現(xiàn)在的項(xiàng)目作為例子進(jìn)行說(shuō)明:
假設(shè)生產(chǎn)環(huán)境的域名是xxx.com,而本地測(cè)試環(huán)境的域名由于寫了VHOST,是xxx.local.com
下面看我的配置文件目錄:
/config /config/xxx.local.com /config/xxx.local.com/config.php /config/config.php
在本地測(cè)試環(huán)境下,系統(tǒng)根據(jù)$_SERVER["SERVER_NAME"],讀取到 /config/xxx.local.com/config.php ,并覆蓋了 /config/config.php 中的配置項(xiàng)。
而在生產(chǎn)環(huán)境下,系統(tǒng)由于讀取不到/config/xxx.com/config.php ,因此使用的全是 /config/config.php 中的配置項(xiàng)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21274.html
摘要:傳統(tǒng)的做法是不把配置文件納入版本控制系統(tǒng),然后在線上寫好一份正確的配置文件,這樣在上線的時(shí)候就不會(huì)影響到線上的配置文件。而在生產(chǎn)環(huán)境下,系統(tǒng)由于讀取不到,因此使用的全是中的配置項(xiàng)。 前言:遙想從前在4399,老是有人把自己本地的配置文件commit到線上,然后公司的RTX就開(kāi)始瘋狂轟炸過(guò)來(lái):頁(yè)面出錯(cuò)了!、這數(shù)據(jù)不對(duì)??!、領(lǐng)導(dǎo)要用啊快點(diǎn)修復(fù)啊啊啊啊啊,好吧,這我也是醉了…… 最近為了新公...
摘要:開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境都擁有的配置,但在細(xì)節(jié)上有所不同,比如說(shuō),又比如說(shuō)中的和參數(shù)。更重要的是,實(shí)際上開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境的配置文件的絕大部分都是一致的,對(duì)于這一致的部分來(lái)說(shuō),我們堅(jiān)決要消除冗余,否則后續(xù)維護(hù)起來(lái)不僅麻煩,而且還容易出錯(cuò)。 本文首發(fā)于Array_Huang的技術(shù)博客——實(shí)用至上,非經(jīng)作者同意,請(qǐng)勿轉(zhuǎn)載。原文地址:https://segmentfault.com/a/11900...
項(xiàng)目開(kāi)始前,我們先聊一聊關(guān)于項(xiàng)目的一些說(shuō)明。該項(xiàng)目起始于2017年初,當(dāng)時(shí)公司主要技術(shù)棧為gulp+angular,鑒于react的火熱的生態(tài),在公司決定研發(fā)bss管理系統(tǒng)時(shí)選用react開(kāi)發(fā),目的也是為react native打下基礎(chǔ),以解決后期公司大前端技術(shù)棧的逐步成熟。(當(dāng)時(shí)沒(méi)有選擇vue開(kāi)發(fā)的主要原因是weex生態(tài)還不夠特別成熟),既然決定換新,項(xiàng)目的構(gòu)建也跟著一起換,從gulp轉(zhuǎn)向火熱的...
摘要:指定啟用例如上述代碼,就使用和處理了除了以外的。設(shè)置當(dāng)前的為,同樣這個(gè)配置也可以寫在中。設(shè)置目錄刪除注釋去除空格去除屬性引號(hào)復(fù)制靜態(tài)目錄將所以可能被請(qǐng)求的靜態(tài)文件,分別放在目錄下。結(jié)語(yǔ)本次從零到一,新建了一個(gè)腳手架。 react-sample-javascript 為了實(shí)現(xiàn)一個(gè)可定制化高的react工程,我們往往會(huì)自己搭建一個(gè)react工程。所以本文會(huì)從零開(kāi)始搭建一個(gè)react腳手架工...
摘要:既然前段工程化是基于,那么選擇做前后端分離部署也是理所應(yīng)當(dāng)?shù)摹S辛诉@三個(gè)東西,我們就可以搭建出最簡(jiǎn)單的前端服務(wù)器了。 前后端分離開(kāi)發(fā)應(yīng)該已經(jīng)是很多公司的標(biāo)配了,然而,在前端工程化的體系下,開(kāi)發(fā)環(huán)境代碼和生產(chǎn)環(huán)境代碼往往是平級(jí)的,不再是整個(gè)文件夾往服務(wù)器上一扔就了事,這讓每次的部署過(guò)程相當(dāng)繁瑣。 如下是常見(jiàn)的項(xiàng)目目錄: Project └──javaSrc └──app ...
閱讀 1792·2023-04-26 01:41
閱讀 3090·2021-11-23 09:51
閱讀 2751·2021-10-09 09:43
閱讀 9073·2021-09-22 15:13
閱讀 2469·2021-09-07 09:59
閱讀 2638·2019-08-30 15:44
閱讀 1145·2019-08-30 12:45
閱讀 2630·2019-08-30 12:43