<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 運行原理剖析 我們不講底層架構,核心原理,太枯燥,也記不住,沒必要。 畢竟不是人人都要當架構師。 我們從M2的模式說起。 理解了他的模式,就知道了他的原理。 M2有3種模式, 1. 默認模式(default) 2. 開發模式(developer) 3. 生產模式(production) ## 默認模式 安裝完成后,就是默認模式。 它跟生產模式差不多. 最大的不同是, 默認模式可以在后臺清緩存,生產模式不能。 它帶有一點靈活性。 1. 錯誤不顯示在頁面上,錯誤記錄到項目的var/report里 2. 開啟靜態緩存文件,也就是說讀取的靜態緩存文件,在pub/static里 3. 默認模式未針對生產環境進行優化,主要原因是靜態文件是動態生成(先創建靜態文件再緩存)。而生產模式是用命令行工具生成的靜態文件,不是動態生成。所以默認模式的性能沒有生產模式好。 4. 可以在后臺開啟/禁用/刷新緩存 ## 開發模式 顧名思義,就是開發測試用的。 1. 錯誤直接顯示在頁面上 2. 關閉靜態緩存文件,每次頁面刷新都動態生成靜態文件到pub/static里 3. 可以在后臺開啟/禁用/刷新緩存 4. 可以在后臺設置瀏覽器編譯less ## 生產模式 線上站點都必須改成生產模式。 1. 錯誤不顯示在頁面上,錯誤記錄在項目的var/report里 2. 開啟靜態緩存文件,每次只從pub/static目錄讀取緩存文件,如果沒有的話 就報錯了。錯誤要在var/report里看。 3. 不能在后臺開啟/禁用/刷新緩存。 4. 要用命令行工具來生成靜態文件,生成在pub/static目錄下 也就是說,生產模式為了加速,提高效率,一律只讀取pub/static下的靜態緩存文件。任何人都干擾不了它。 ## 總結 說白了,默認模式就是個雞肋,食之無用,棄之可惜。 我們只需要開發模式和生產模式就行。 也就是說我們: > 在開發模式下開發測試。 > 在生產模式下部署上線。 開發模式下這樣設置 //bbs.mallol.cn/?thread-148.htm 因為默認模式和生產模式都強制性的讀取pub/static下的靜態緩存文件,所以就比較復雜了,每次修改內容都要清緩存并且重新生成靜態文件才生效。 默認模式和生產模式要類似這樣操作: ~~~ php bin/magento maintenance:enable && git pull origin master 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/di php bin/magento setup:upgrade && php bin/magento setup:di:compile php 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 ~~~ 說白了,就是 #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緩存呢? ![](https://box.kancloud.cn/1d39848c08d07c2e7397b6bb743bf10a_2152x1011.png) 這里就是所謂的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/di php bin/magento setup:upgrade && php bin/magento setup:di:compile php 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. 開發和線上版本都在同一個服務器,配置至少是4核8G > 2. 服務器只放線上版本,配置至少是2核4G > 3. 服務器只放開發版本,配置至少是2核8G
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看