Productionモードの場合、マージされたJSとCSSは機能しません


24

私は開発者モードで、すべてが素晴らしかったです生産モード変更したとき、CSSとJSのマージされたオプションは無視されているようで、すべてのcssとjsをリストしていました。

また、製品ページには、製品モードの写真が開発者モードでのみ表示されますが、製品モードに変更した後は消えます。

私を助けると思いますか?


ポイントは、私がやっているということです。

これが私が順番にしたことです:

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento setup:static-content:deploy

bin/magento setup:di:compile

bin/magento deploy:mode:set production

bin/magento setup:static-content:deploy

開始する前でも、マージオプションはYESであり、開発者モードでした。


こんにちは、この問題の解決策はありますか、magento 2.0.7でも同じ問題が発生しています。解決策があれば教えてください、ありがとう
アシッシュジャグナーニ

私はそれに直面しています同じ問題が私に助けを喜ば
Rvのシン

回答:


19

私は次のことをしただけで問題は解決しました:

bin / magentoのセットアップ:アップグレード

bin / magento indexer:reindex

bin / magento deploy:mode:set production -s

#ここに秘密がありました:生産後にdi:compileを実行します
bin / magento setup:di:compile  

bin / magento setup:static-content:deploy

2
私は同じ方法を試してみましたが、運はありませんでした
プラディープクマー

これは私のために働いた。
dchayka

コマンド「production -s」を実行すると、サイトが空白になり、非常に珍しいエラーが発生します。警告:include(/ siteRoot / html / var / view_preprocessed / html / vendor / magento / module-theme / view / base / templates / root。 phtml):ストリームを開くことができませんでした:312行目
Jai

別の-それは私のために働いた。他の誰かが私に問題を抱えている場合に備えて。CSSは管理者でオプションを有効にしているにもかかわらず、縮小してバンドルしますが、JSは縮小しません。セット製品モードで-sを追加すると、すべての違いが生じました。また、バックエンドも非常に高速になりました。私は同じ順序とコマンドを使用していましたが、違いを
生ん

最初に開発モードに切り替える必要がありますか?私はあなたが言及した何をしたが、有意差ありません....
Jilco Tigchelaar

2

NGINX構成ファイルも確認してください。

そこに変数が$MAGE_MODE設定されproductionている場合、同様に変更する必要があり、ファイルを保存します

その後、好みに応じてNGINXをリロードまたは再起動する必要があります。

sudo service nginx reload

または

sudo service nginx restart

その後、を確認してapp/etc/env.phpMAGE_MODE配列キーがproduction変更されていない場合は同様に設定されているかどうproductionかを確認するか、コマンドを使用できます

php bin/magento deploy:mode:set production

コマンドを実行した後、値が変更されたかどうかを確認してくださいapp/etc/env.php。許可の問題がある場合があります。

次に、pub/staticフォルダーを削除します。

rm -rf pub/static/*

キャッシュをクリア/フラッシュする

php bin/magento cache:clean
php bin/magento cache:flush 

これで、静的コンテンツのデプロイを実行する準備ができました

php bin/magento setup:static-content:deploy

お役に立てれば。


1

同様の問題があります。画像が表示されない原因は、JSを縮小した後にJSファイルにエラーがあるためです。ブラウザで確認できます(firebugなど)。

... / div> '; return __p};})(window、document、location、typeof jQuery!==' undefined '&& jQu

私はこれをすべてのファイルを削除して解決しました var / cache /およびpub / static /及びセットアップ:静的コンテンツ:デプロイ再び

しかし、まだ別の問題があります。有効にした場合のブレインツリーに関する問題です。別のJSエラーが原因でBraintreeは表示されません。

エラー:https ://js.braintreegateway.com/v2/braintree.jsのスクリプトエラー http://requirejs.org/docs/errors.html#scripterror

... Error(id、msg、err、requireModules){var e = new Error(msg + '\ nhttp://requirejs.org/doc ...

とりあえず、解決策が見つかるまで問題を回避するためにminify js関数を使用しないでください。


1

これらはMagento ver。で私のために働いたステップです。2.1.7 with Redis(ワニスを実行していない)。ただし、すべてが正常に機能しているかどうかはまだ不明です。JSは縮小されてバンドルされます(マージの実行内容が不明です)。CSSは縮小されます(マージされていないことを確認します)。

  1. すべてのMagentoキャッシュをオフにします。
  2. Redisキャッシュをクリアします。
  3. 5つすべてのcss / js構成をオンにします(管理者またはデータベース経由)。
  4. 静的ファイルを生成します。
  5. Magentoキャッシュをクリアします(コマンドライン)。安全のため(必要ではない場合があります)。
  6. opcacheをクリアします(自動更新に設定されていない場合)。
  7. フロントエンドのホームページを更新します(そして、ブラウザコンソールでエラーを確認します)。
  8. Magentoキャッシュをオンにします。

dev / css / merge_css_files = 1 dev / css / minify_files = 1 dev / js / enable_js_bundling = 1 dev / js / merge_files = 1 dev / js / minify_files = 1

構成をオンにしてキャッシュをクリアするだけでは機能しませんでした。フロントエンドブラウザコンソールは、多くのjsエラーを報告しました。


Mergeはファイルを1つにマージします。
ladle3000

0

JavaScript / CSSをフラッシュしようとしましたか?これを行うには、[システム]> [キャッシュ管理]の順にクリックし、テーブルの下部にある[Flus JavaScript / CSSキャッシュ]のボタンを押します。


YEP .... jsをフラッシュしてからキャッシュします。何も変わりません。ただし、開発者モードに切り替えると、マージは機能します。
ブルーノブエノ

0

本番モードでこのオプションを有効にした後、静的を再デプロイする必要があります。


ポイントは、私がやっているということです。私がやったことをここに投稿しました。
ブルーノブエノ

うまくいかない場合は、許可に問題がある可能性があります。Webサーバーのアクセス/エラーログを確認できますか
-KAndy

0

私は次のことをしただけで、問題は解決しました。

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(生産後にdi:compileを実行するための秘密がありました)

bin/magento setup:static-content:deploy

0

JavaScriptがコンパイルされていないときにjqueryセレクターが機能するという問題がありました。

$( '#my_element')。click(function(){alert( 'Hello World');});

しかし、コンパイル、圧縮、結合したら、コーディングする必要があります。

$( 'body #my_element')。click(function(){alert( 'Hello World');});

理由を聞かないでください。キャッシュから直接読み取る場合、domReadyと要素が異なるページの異なる要素にアタッチされる前にrequirejsコードが実行されるようです。



-1
  1. 「JavaScriptバンドルを有効にする」オプションも有効にしてください

    store-> configuration-> advanced-> developer-> javascript setting->

  2. 「はい」に設定されたJavaScriptバンドリングを有効にし、キャッシュをフラッシュします


2
質問とは何の関係もない偶然のアドバイス。
ladle3000
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.