Magento 2 CSSおよびJavaScriptが正しいフォルダーからロードされない


35

ここの誰かが助けてくれることを望んでいます。Windows 7マシンのWAMPにMagento 2をインストールして実行しようとしていますが、ほとんど成功していません。

サイトをロードするために多くのさまざまなフープを介してジャンプした後、私は404応答に直面していますが、スタイルやjavascriptのロードはありません。

仕様は次のとおりです。

  • Magento-CE-2.0.0 +サンプル
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

エラーの中でブラウザコンソールを見ると、pub / staticフォルダにないファイルにアクセスしようとしています。「フロントエンド」フォルダーはロードされ、ほとんどのファイルが存在します。ただし、一部のCSSファイルが存在しないことに気付きました。

PHPデプロイコマンドの実行時

php bin/magento setup:static-content:deploy

それは他の投稿で言及されていますが、私は以下のエラーを受け取ります。これを修正する方法がわかりませんか?

致命的エラー:45行目のC:\ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.phpで134217728バイトのメモリサイズを使い果たしました(64バイトを割り当てようとしました)。

どんな援助も大歓迎です。

更新

PHPのメモリ許容量を増やして、php deployスクリプトを再度実行しました。今回はエラーにならず、完全に実行されました。ただし、上記と同じ問題が依然として存在します。サイトはロードされますが、ページまたはアセットをロードしようとすると、スタイリングが適用されずに404ページが見つかりませんというエラーが発生します。

以下のChrome Inspectorのエラーをご覧ください

ここに画像の説明を入力してください


@TejabhagavanKolleparaこの質問は最初に尋ねられたもので、整形式で、良い答えがあります。そのため、IMOのもう1つの質問は、この候補ではなく、peの候補です。 、同じ質問を達成するために、他の質問の重複としてこの質問にフラグを立てる必要はありません。
7ochem

SAの回答もご覧ください。Magentoの新規インストールは「デフォルト」(「プロダクション」ではない)モードであり、静的コンテンツをデプロイする必要はありません。これは他のすべての回答で行うように指示されています。
ジャニスエルメリス

回答:


50

ソリューション#1(XMLファイルを編集する場合)

magentocommerce.com/downloadサンプルデータを使用してMagento 2 zipをダウンロードし、phpmyadminに新しいdbを作成し、htdocsフォルダーにzipを抽出してください。Magento 2をインストールしますが、localhostを使用しないでください。ストアURLおよび管理URLで127.0.0.1を使用します。インストールが成功した後、magentoを実行しないでください。

次に、Magento 2のキャッシュとセッションをクリア/削除します。次のパスに移動して、すべてを削除します。

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Magento 2がプロダクションモードでない場合、ローカルサーバー上の一部の静的リソースのシンボリックリンクを作成しようとします。ROOT > app > etc > di.xmlファイルを編集して、Magento 2の動作を変更する必要があります。di.xmlお気に入りのコードエディタで開き、virtualType name="developerMaterialization"セクションを見つけます。以下のセクションでは、<item name="view_preprocessed" xsi:type="object">変更が必要なアイテムを見つけます。次のコンテンツを変更することで変更できます。

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

に:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

最後のステップで、生成された古いファイルも削除します ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

ソリューション#2

Composerをインストールします。次にmagentocommerce.com/download、Magento 2 zipをからダウンロードし、phpmyadminに新しいdbを作成し、htdocsフォルダーにzipを抽出します。Magento 2をインストールしますが、localhostを使用しないでください。ストアURLおよび管理URLで127.0.0.1を使用します。インストールが成功した後、magentoを実行しないでください。

Composerのインストールを確認し、静的コンテンツを展開し、Magentoキャッシュをクリア/フラッシュし、Magento 2ブロックのインデックスを再作成します。上記のすべてのアクションを実行するには、WINDOWS KEY + Rを押してRUNダイアログを開き、「cmd」と入力してコマンドプロンプトを開きます。

cd PATH_TO_YOUR_MAGENTO2_FILES」と入力して、Magento 2 ROOTディレクトリに入ります。

上記のディレクトリでComposerのインストールを確認するには、「composer install」と入力します。

このステップでエラーが発生した場合は、Composerのインストールを確認してください

このステップでは、Magentoストアに展開する静的コンテンツを設定します。これを実行するには、「php bin / magento setup:static-content:deploy」と入力します。

上にある人のためのMagentoの2.2.xの

php bin/magento setup:static-content:deploy -f

エラーが発生した場合は、PHP.EXEおよびPHP.INI環境変数を確認してください

CMDで「php bin / magento cache:flush」と入力して、Magentoキャッシュをクリア/フラッシュします。

最後に、Magento Static Blocksのインデックスを再作成するには、「php bin / magento indexer :reindex」と入力します。

Magento 2のインストールが正常に完了しました。


4
また、php.iniの変更にmax_execution_timeは、500へのmemory_limit、2048Mにpost_max_sizeの 2048Mに、upload_max_filesizeで 2048Mとにmax_file_uploads 2048に
Fayyaz Khattak

迅速な対応ありがとうございます。これらの変更を加えましたが、効果はありませんでした。変更を行った後、WAMPサーバーを再起動しました。質問を編集して、Chromeインスペクターに表示されるエラーを表示しました
-E.Gain

ああ、私は1つのより多くの事を言及して申し訳ありません、最初にすべてのキャッシュやセッション、でメイクの変更、削除di.xmlからも削除すべての.htaccess EXCEPT ROOT>パブ>スタティック> DELETE ALL
Fayyaz Khattak

1
@MagenXこれは、どのツールを使用することを好むかという、すべての人の見解です。あなたの目では、あなたはソリューションのあなたの見解を共有するのではなく、すべてをハンマーとして批判します。
ファイヤズハッタク

1
解決策#2は魅力的でした。この問題に対処して、数日ではないにしても時間を節約してくれてありがとう!
ジョナサンマルズーロ

11

あなただけのapache2.confファイルを更新する必要があります。

Ubuntu 16.04で

  1. ファイルを開いて編集します /etc/apache2/apache2.conf
  2. apache2.confファイル内の場所に移動します <Directory /var/www/>
  3. 変更 "AllowOverride None""AllowOverride All"
  4. ファイルを保存する
  5. 再起動 apache2 -> sudo service apache2 restart

この答えを見つけるのは大変でした!他のすべての場所では、Magentoの新規インストールが「デフォルト」モード(「プロダクション」ではない)モードであり、静的コンテンツをデプロイする必要がない場合でも、静的コンテンツを(再)デプロイすることが推奨されます。
ジャニスエルメリス

10

magento2にインストールした後、cssおよびjsページの読み込み設計の問題に直面している場合

次の手順に従ってください:

ターミナルを開き、Magento Webルートに移動します

 $ cd / var / www / html / magento2 

ステップ1。

 $ php bin / magento setup:static-content:deploy

ステップ2。

$ php bin / magento indexer:reindex

ステップ3。

Apache「rewrite_module」が有効になっていることを確認してから、サーバーを再起動します

ステップ4。

$ chown -R www-data:www-data / var / www / html / magento2 

ステップ5。

 $ chmod -R 777 / var / www / html / magento2 

ステップ6。

var / cacheの下のキャッシュフォルダーを削除する

上記のステップは機能しています。これがあなたにも役立つことを願っています。

問題があれば教えてください。:)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/


1
これらのコマンドをWindowsでどのように実行しますか?
ハッサンアリ

1
私にとっては最初の3つのステップだけで機能します。:)
hln

6
サーバー上のすべてのファイルのアクセス許可を777に設定するのはそれほど賢くない。
クリスGudn

1
magentoのインストール全体に完全な読み取り/書き込み許可を与えるステップに、私は本当に感心していません。
Cyclonecode

1
777にアクセス許可を設定することは悪いアドバイスですが、できればシステム管理者なら誰でも知っていることを願っています。
ジョンホール

6

私にとっては、単にmod_rewriteが有効になっていないからでした。

sudo a2enmod rewrite

そして

service apache2 restart


1
完璧なソリューション!!! +1 :)
SagarPPanchal

6

追加すると同じ問題が解決しました

sudo nano /etc/apache2/apache2.conf

これを修正

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

これに

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

またmod_rewrite、SSL証明書とinsall SSL証明書apache2モジュールを有効にする必要があります。

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
これに加えて、rm -rf var / *が機能しました。素晴らしいスポット。
ジョンホランド

6

CSSパスにバージョン名を表示する場合の最も簡単なソリューションは次のとおりです。

ような:pub / static / version323334 /

次に、mysqlでこのクエリを実行します

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

その後、構成キャッシュをクリアします

 bin/magento cache:clean config

管理者から静的ファイルのバージョンを無効にすることもできます

ここに画像の説明を入力してください


4
これは私のために働いてくれてありがとう。ただし、クエリを修正する必要がありますINSERT INTO core_config_data(path、value)VALUES( 'dev / static / sign'、0);
アフタブNaveed

パスと値とは何
ですか-zus

パス、値はちょうどそれが仕事である必要があり、このSQLを実行して、私はすでに値(DEV /静的/記号、0)を定義するフィールドの名前されている
スレンドラ・クマールアアー

完璧なソリューション!!! 私の日を作りました:) +1
SagarPPanchal

5
  1. 以前に無効にしない場合は、キャッシュを無効にしてみてください
  2. クリーンなコードを備えたMagentoの最新バージョンを使用していることを確認してください。何かを変更またはカスタマイズする場合は、すべてのエラーを修正してください。
  3. 以下のいくつかのコマンドを実行すると役立ちます。

    php bin/magento indexer:reindex

    php bin/magento cache:flush

フォルダーを削除

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

  • php bin/magento setup:static-content:deploy


3

私の場合、誤って.htaccessファイルROOT/pub/ROOT/pub/staticフォルダを削除しました。その後、戻すと動作を開始します


2

解決しました!!!

Magento2ルートフォルダーのCLIインターフェイスで次のコマンドを実行します。

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

次に、magento2のルートにあるこのコマンドでvarフォルダーを削除します。

rm -rf var/*

次に、ホームページと管理パネルを更新します。その働き!!!!! かっこいい!!!!


1

404でも同じ問題が発生しました。ApacheのVirtualHostディレクティブが正しいことを確認することで解決しました。これが私のVirtualHostです。

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

また、以前は何が間違っていたのかわかりますか?それ以外の場合、この例は他の人にとってあまり役に立ちません。
ファビアンシュメングラー


0

私はOPとまったく同じ問題を抱えていましたが、それは単にロケールをに設定したためでしたen_AU。したがって、デフォルトのdeployコマンドを使用するとen_USコンテンツのみが生成されました。次のように、実際に使用しているロケールをコマンドのENに追加する必要があります。

php bin/magento setup:static-content:deploy en_US en_AU

0

上記の解決策を試しました。しかし、それは私を助けませんでした。それにもかかわらず、私は彼らがシーケンスの変更で言及したのと同じコマンドを使用しました。彼らです、

  1. キャッシュ、composer_home、生成、ログ、page_cache、tmpおよびview_preprocessedvarディレクトリからクリアします

  2. 次のコマンドを1つずつ実行します。

php bin / magento indexer:reindex

php bin / magento cache:flush

php bin / magento setup:static-content:deploy

これが私のような人に役立つことを願っています。


0

mod_pagespeedを無効にする

Pagespeedは、コンテンツの「キャッシュされた」インスタンスを略語で処理します。つまり、これが通常のファイルである場合です。

image.css

次のように設定されます。

image.pagespeed.css

上記は非常に単純な例ですが、すでに根本的な問題がどこにあるかを見ることができます。これは、コアパスを介して見つけることができないため、静的コンテンツのロードが不適切になる可能性があります。これは、それらが一時的に存在するためです。これはMod_Pagespeedの継承の問題です。そのため、無効にすることをお勧めします。

高速コメットサポートの回答者、それは私の問題を解決しました


0

Ubuntu 18.04(バイオニック)の場合。静的ファイルが正しく読み込まれるように、次の手順を使用しました。

インストールが完了したら:

Apacheモジュール「rewrite」が有効になっていない場合は有効にしてください。

  • cd /etc/apache2
  • コマンドを実行する a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

次に、次の変更を行います

変更元:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

その後、Apacheを再起動します

sudo service apache2 restart

または

sudo /etc/init.d/apache2 restart

次に、アクセス許可を変更します <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

次に、静的コンテンツを展開します

  • php bin/magento setup:static-content:deploy -f (開発環境にいる場合は-fが必要です)

次に、キャッシュをフラッシュしてインデックスを再作成します

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

または

  • <magento root directory> rm -R /var/cache*

次に、を使用してホームページにアクセスします

  • 127.0.0.1/your_configured_url の代わりに localhost/your_configured_url

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