Magento 2開発者モードは静的ファイルを自動的に再生成しません


14

開発者モードでMagento 2.0.2をインストールしていますが、CSSを変更するたびに静的ビューファイルを再生成するように強制する方法がまだわかりません。

実行して、開発者モードになっていることを確認しました php bin/magento deploy:mode:show

、このページには、その開発者モードは、キャッシュの静的ビューファイルを無効にすると言うが、それは私にとってはそうではありません。

このソリューションでdi.xml言及されているように編集しようとしましたが、Magentoの動作は変わりませんでした。

静的ビューファイルを自動的に再生成するようにmagentoに指示するにはどうすればよいですか?

回答:


4

開発者モードでは、M2は静的ファイルを生成しません。さまざまなモジュールからそれらへのシンボリックリンクを作成する必要があります。ただし、setup:static-content:deployを実行し、それらのファイルを配置している場合、それらは更新されません。すべての静的ファイルを削除して、Magentoがそれらにリンクしているかどうかを確認してください(シンボリックリンクがある場合は、実際のファイルを削除しないように注意してください)


1
pub / staticのコンテンツ全体を(.htaccessファイルを削除せずに)削除しようとしましたが、機能しませんでした。古いファイルが再生成されたようです。
アレクサンドル

現在、更新されたコンテンツを取得できる唯一の方法は、Magentoのキャッシュ管理ページで[静的ファイルキャッシュのフラッシュ]をクリックすることです。
アレクサンドル

4
開発者モードではシンボリックリンクが生成されないという同じ問題がありました。その後、.htaccesファイルをから削除したことに気付きましたpub/static。次のリクエストで.htaccessファイルを復元するとpub/static、すべてのシンボリックリンクが再生成されました。それが役に立てば幸い。
アレッサンドロロンキ

現在、Magento 2.0.6でも同じ問題があります。.htaccess-fileを再度追加してみました(nginxを実行しているため、多くのことを行うとは思いませんでした)。以前、私のシンボリックリンクが作成されましたが、今ではないもう...
Giel Berkers

1
pub/staticとにかく自動生成されると思ったので、ある時点で手動で削除しても同じ問題が発生しました。私たちのapache2 / php7のセットアップでは、現在欠落している.htaccessファイルが実際にこれを担当しているように見えます。元の.htaccess開発者モードを再作成すると、再び正常に機能しました。最近の.htaccesへのリンク:github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork

1

私にも同じことが起こりました。サイトを別のサーバーに移動した後、ファイルのアクセス許可を正しく設定しなかったことが判明しました。

私は走りましたfind . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento、そしてそれは私の問題を解決しました。

詳細:Magento 2:共有ホスティングの推奨ファイル許可

更新:pubフォルダー(magento / pub)および基になるフォルダーに読み取りおよび書き込み権限があることを確認してください。


2
誰がダウン投票したのか:なぜ?
クリスK

0

ここで少し遅れましたが、同じ問題が発生していました。私はdeveloperしばらくの間モードを有効にしていましたが、何らかの理由で(ある時点で私の側でエラーが発生した可能性があります)、もはや機能していないようです。

私にとって簡単な解決策は、モードを再び開発者にリセットすることでした:

php bin/magento deploy:mode:show developer

NB:あなたがそれを設定する必要があるかもしれませんdefaultし、その後developer


これも助けにはなりませんでした。他の提案はありますか?
アダルシュカトリ

0

静的ファイルをフラッシュしない限り、更新が少なく表示されるという同じ問題に直面していました。私の修正は無効にすることmod_expiresでした。これはcssなどをキャッシュしていました。

pub/static/.htaccessファイル内には、次のようなものがあります。

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresActive On

    # Data
    <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
        ExpiresDefault "access plus 0 seconds"
    </FilesMatch>
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType text/csv "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/zip "access plus 0 seconds"
    ExpiresByType application/x-gzip "access plus 0 seconds"
    ExpiresByType application/x-bzip2 "access plus 0 seconds"

    # CSS, JavaScript, html
    <FilesMatch \.(css|js|html|json)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType application/json "access plus 1 year"

    # Favicon, images, flash
    <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"

    # Fonts
    <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType application/x-font-ttf "access plus 1 year"
    ExpiresByType application/x-font-otf "access plus 1 year"
    ExpiresByType application/x-font-woff "access plus 1 year"
    ExpiresByType application/font-woff2 "access plus 1 year"

</IfModule>

mod_expires上記を無効化またはコメントアウトし、ブラウザでハードリフレッシュを実行すると(Macユーザーがを押したままShift + Command + r)、変更を行うたびに変更が表示されます。


0

私もこの問題を抱えていました!

私の場合、それは許可の問題でした。

cat /etc/apache2/logs/error_log | grep static

そして

tail -f / etc / apache2 / logs / error_log | 静的grep

おもしろい情報を教えてくれました(ログファイルの名前は違うかもしれません)

最初に見た:

[Wed Oct 30 12:19:34.287356 2019] [core:crit] [pid 27633] (13)Permission denied: [client 24.48.87.7:16680] AH00529: /home/[datuser]/public_html/pub/static/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/[datuser]/public_html/pub/static/' is executable

pub / staticフォルダーが実行可能ではないことがわかりました。それから私はそれを修正した後

[Wed Oct 30 12:22:46.490759 2019] [:error] [pid 27290] [client ipremoved] SoftException in Application.cpp:267: File "/home/[datuser]/public_html/pub/static.php" is writeable by group, referer: [url removed]
[Wed Oct 30 12:22:46.490961 2019] [core:error] [pid 27290] [client ipremoved] End of script output before headers: static.php, referer: [url removed]

私たちのサーバーApacheでは、何らかの理由でグループごとに書き込み可能なファイルを提供できません。だから、pubの下のすべてのファイルに644を設定する必要があり、最終的に私のシンボリックリンクが作成され始めました!!

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