スクリプトおよびCSSのMagento 2 404エラー


39

https://github.com/magento/magento2からMagento 2をダウンロードしてインストールしました

しかし、http:// localhost / magento2 / pub / static /にあるスクリプトとcsに対して404エラーが発生します

私はチェックしました、Apache書き換えエンジンはオンです。それでも、cssとjsファイルはロードされません。

ブラウザから直接ファイルにアクセスしようとすると、次の例外が発生します。

Cannot create a symlink for "D:/xampp/htdocs/magento2/lib/web/mage/calendar.css" and place it to "D:/xampp/htdocs/magento2/pub/static/frontend/Magento/blank/en_US/mage/calendar.css" Warning!symlink(): Cannot create symlink, error code(1314)
#0 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\Filesystem\Directory\Write.php(155): Magento\Framework\Filesystem\Driver\File->symlink('D:/xampp/htdocs...', 'D:/xampp/htdocs...', Object(Magento\Framework\Filesystem\Driver\File))
#1 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink.php(30): Magento\Framework\Filesystem\Directory\Write->createSymlink('lib/web/mage/ca...', 'frontend/Magent...', Object(Magento\Framework\Filesystem\Directory\Write))
#2 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(65): Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink->publishFile(Object(Magento\Framework\Filesystem\Directory\Write), Object(Magento\Framework\Filesystem\Directory\Write), 'lib/web/mage/ca...', 'frontend/Magent...')
#3 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(49): Magento\Framework\App\View\Asset\Publisher->publishAsset(Object(Magento\Framework\View\Asset\File))
#4 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\StaticResource.php(118): Magento\Framework\App\View\Asset\Publisher->publish(Object(Magento\Framework\View\Asset\File))
#5 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\Bootstrap.php(245): Magento\Framework\App\StaticResource->launch()
#6 D:\xampp\htdocs\magento2\pub\static.php(13): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\StaticResource))
#7 {main}

私のオペレーティングシステムはWindows 7で、xamppサーバーを実行しています。


これは2015年に求められたことに気づきますが、他の人がまだこの投稿を見ている場合は、gitからmagentoを取得しないでください。これは、プルリクエストを送信する場合にのみ行います。Magentoは、サイトのダウンロードセクションからダウンロードするか、コンポーザー経由でインストールする必要があります。
Dominic Xigen

回答:


86

本番モードでない場合、Magento 2はいくつかの静的リソースのシンボリックリンクを作成しようとします。次の操作を行うことにより、その動作を変更できます。

  1. 開いてセクションapp/etc/di.xmlを見つけますvirtualType name="developerMaterialization"。そのセクションには、name="view_preprocessed"変更または削除する必要があるアイテムがあります。内容をからMagento\Framework\App\View\Asset\MaterializationStrategy\Symlinkに変更して変更できますMagento\Framework\App\View\Asset\MaterializationStrategy\Copy

  2. pub / staticの下のファイルを削除して、既存のシンボリックリンクを削除します。.htaccessファイルを削除しないように注意してください。

これにより、シンボリックリンクを使用してエラーを解決できます。


2
pub / staticフォルダを削除するだけでうまくいきました。
アダム・モス

4
私の場合、pub / staticコンテンツを削除するだけでは十分ではありません。上記の回答で述べたように、SymlinkをCopyに変更して、スキンの読み込みを正常に行う必要がありました!
ハイジェローム

2
魅力のように働いた... !!!!
ニーラジガーグ

2
これは私にとってはうまくいかず、/ pub / staticフォルダーも削除しませんでした。他のアイデアはありますか?
goncalotomas

2
私のために働いていない:
Alaa M. Jaddou

7

私はこの問題に直面し、理解しようとしました。私はクリス・オツールに同意します。余分なステップを追加します。私のステップは、

  1. app / etc / di.xmlを開き、Symlinkを検索します。次のセクションにあることを確認してください。
<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
                <arguments>
                    <argument name="strategiesList" xsi:type="array">
                        <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
                        <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
                    </argument>
                </arguments>
            </virtualType>

Symlinkをコピーワードに置き換えます。セーブ。

  1. pub / static内のすべてのフォルダーを削除します。.htaccessおよびその他のファイルを削除しないでください。

  2. 管理者としてxamppを実行します。管理者としてコマンドラインを実行します。を実行しますgrunt exec:<theme name>

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

正常に動作していることがわかります。

その後、実行することができます grunt less:<theme name>

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

最後に実行できます grunt watch

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

lessファイル(_theme.lessまたは_extend.less)で変更を行うと、pub / staticフォルダーにstyle-lおよびstyle-m cssファイルが自動的に作成されます。

Windows 10でmagento 2.1を実行しています。


実際、最初のステップは必要ありません。

2

Magentoがこれらの新しい静的ファイルを作成した後、ファイルのアクセス許可を更新することを忘れないでください。これらはwww-dataによって所有されていないため、404を提供します。


1

私はので、私の場合はそうではありませんでしapp/etc/di.xmlMagento\Framework\App\View\Asset\MaterializationStrategy\Symlinkとして@Chrishで言及しました。モジュールの1つに.phtmlファイルのスクリプトエラーがあったためです。.phtmlファイル内のコードを確認することをお勧めします。私の場合、スクリプトファイルを修正することで解決しましたinitialize.phtml


0

pub / staticフォルダーとvar /フォルダーのmod_phpでApacheの正しい許可を使用することが重要であることがわかりました。Alan Stormの記事 http://alanstorm.com/magento_2_adding_frontend_files_to_your_moduleから

find /path/to/magento2/pub/static -exec chmod 777 '{}' +
find /path/to/magento2/var/ -exec chmod 777 '{}' + 

サーバー端末で実行する必要があります。これにより、スクリプトと画像の404エラーが修正されました。

psしかし、それはLinuxの場合です。


また、可能性chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
nick.graziano

0

これを行う適切な方法はコマンドラインからだと思います:cdをmagentoディレクトリに移動して、次のコマンドを実行します。

php bin/magento setup:static-content:deploy

空のvar/cacheディレクトリとチェック。


0

のすべてのファイルを削除しましたpub/static/*。Magentoは、ページを読み込むときに静的ファイルを自動生成します。


0

Xampp(apache、nginx)などを管理者として実行して、Windows(Windows 10でテスト済み)でSymlinkを作成できるようにする必要があります。

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