【转】1.5 运行原理剖析
我們不講底層架構,核心原理,太枯燥,也記不住,沒必要。
畢竟不是人人都要當架構師。
我們從M2的模式說起。
理解了他的模式,就知道了他的原理。
M2有3種模式,
默認模式
安裝完成后,就是默認模式。
它跟生產模式差不多.
最大的不同是,
默認模式可以在后臺清緩存,生產模式不能。
它帶有一點靈活性。
開發模式
顧名思義,就是開發測試用的。
生產模式
線上站點都必須改成生產模式。
也就是說,生產模式為了加速,提高效率,一律只讀取pub/static下的靜態緩存文件。任何人都干擾不了它。
總結
說白了,默認模式就是個雞肋,食之無用,棄之可惜。
我們只需要開發模式和生產模式就行。
也就是說我們:
在開發模式下開發測試。
在生產模式下部署上線。
開發模式下這樣設置
//bbs.mallol.cn/?thread-148.htm
因為默認模式和生產模式都強制性的讀取pub/static下的靜態緩存文件,所以就比較復雜了,每次修改內容都要清緩存并且重新生成靜態文件才生效。
默認模式和生產模式要類似這樣操作:
說白了,就是
#1,開啟維護模式,如果有用git版本控制代碼的話,就pull最新代碼下來。
#2,刪除靜態文件和一系列緩存文件
#3,更新數據庫以及代碼編譯
#4, deploy生成靜態文件到pub/static里,供m2讀取。
#5,更新索引,關閉維護模式,以及清空刷新magento緩存。
這個我就不細說了,在后面的Magento2線上部署?章節里會詳細說到。
他這個pub/static下的靜態文件都來源于插件和主題下的web目錄下的文件,都是網站運行過程中需要調用的js/css/images/字體等等。
一定要搞清楚你目前的m2項目是處于哪個模式。要對癥下藥。
不然總是遇到無樣式或者頁面空白的情況,一臉懵逼。
用這個命令查看當前模式
php bin/magento deploy:mode:show一句話
開發模式不用管pub/static下的靜態緩存文件,也不需要deploy什么的。
生產模式一定要管pub/static下的靜態緩存文件,要先刪除靜態文件清緩存后再deploy生成靜態文件,刷新緩存,不然就會出問題。
注意:
不是說開發模式下就不用管緩存了,我這里說的是不需用deploy生成靜態文件,緩存還是要清的。
如果你按照
http://bbs.mallol.cn/?thread-148.htm
這里設置的話,就不需要清后臺緩存,因為后臺緩存被禁用了。
但是還是需要清瀏覽器緩存的。
還需要rm generated/* -rf,因為如果你有修改過php的構造函數function __construct()里的代碼 就需要清下generated/下的代碼緩存,不然會報錯 說找不到這個類 等奇怪的錯誤。
什么是Magento緩存呢?
這里就是所謂的magento緩存。
緩存在var/下面。
比如var/generation/,var/di/,var/cache/,var/page_cache,var/view_preprocessed。
這幾個目錄都是magento緩存。
不要跟deploy的靜態文件搞混淆了,不是同一個東西。
因為deploy的靜態文件在pub/static下面。
因為現在的瀏覽器緩存也很嚴重,特別是css/js,要強制刷新才會更新。
所以你修改js/css后 一定要清瀏覽器緩存,才會看到最新的效果
開發模式/生產模式 任意切換
切換到生產模式
php bin/magento deploy:mode:set production切換到生產模式后,需要刪除緩存文件并deploy下。
切換到開發模式
php bin/magento deploy:mode:set developer切換到開發模式后,還需要再設置下:
http://bbs.mallol.cn/?thread-148.htm
如果有無樣式或其他報錯的話,先嘗試執行更新系統的操作:
php bin/magento maintenance:enable rm -rf var/di/* && rm -rf var/generation/* && rm -rf var/cache/* && rm -rf var/page_cache/* && rm -rf var/view_preprocessed/* && rm -rf pub/static/* && rm -rf generated/* && mkdir var/diphp bin/magento setup:upgrade && php bin/magento setup:di:compilephp bin/magento setup:static-content:deploy -f && php bin/magento indexer:reindex && php bin/magento maintenance:disable && php bin/magento cache:clean && php bin/magento cache:flush關于服務器配置問題
因為m2分開發模式和生產模式,因為開發模式非常耗資源,所以服務器配置按需配置:
總結
以上是生活随笔為你收集整理的【转】1.5 运行原理剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人民币理财产品有风险吗?这些风险要识别清
- 下一篇: Sharepoint学习笔记—Site