Magento 2 404 kesalahan untuk skrip dan css

39

Saya telah mengunduh dan menginstal Magento 2 dari https://github.com/magento/magento2

Tapi saya mendapatkan error 404 untuk skrip dan cs yang terletak di http: // localhost / magento2 / pub / static /

Saya telah memeriksa, mesin penulisan ulang Apache hidup. Tapi tetap saja, file css dan js tidak memuat.

Ketika saya mencoba mengakses file langsung dari browser itu memberikan pengecualian berikut.

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}

Sistem operasi saya adalah Windows 7 dan saya menjalankan xampp server.

piyush_systematix
sumber
Sadarilah ini ditanyakan pada tahun 2015 tetapi jika orang lain masih melihat posting ini Anda tidak harus mendapatkan magento dari git. Anda hanya melakukan ini jika Anda mengajukan permintaan penarikan. Magento harus diunduh dari bagian unduhan situs atau dipasang melalui komposer.
Dominic Xigen

Jawaban:

86

Ketika tidak dalam mode produksi, Magento 2 akan mencoba membuat symlink untuk beberapa sumber daya statis. Anda dapat mengubah perilaku itu dengan melakukan hal berikut.

  1. Buka app/etc/di.xmldan temukan virtualType name="developerMaterialization"bagian itu. Di bagian itu Anda akan menemukan item name="view_preprocessed"yang perlu diubah atau dihapus. Anda dapat memodifikasinya dengan mengubah konten dari Magento\Framework\App\View\Asset\MaterializationStrategy\SymlinkmenjadiMagento\Framework\App\View\Asset\MaterializationStrategy\Copy

  2. Hapus file di bawah pub / statis untuk menghilangkan symlink yang ada. Anda mungkin ingin berhati-hati untuk tidak menghapus .htaccessfile.

Ini akan menyelesaikan kesalahan Anda dengan symlink.

Chris O'Toole
sumber
2
Hanya menghapus folder pub / statis bekerja untuk saya.
Adam Moss
4
Menghapus konten pub / statis tidak cukup dalam kasus saya. Saya harus mengubah Symlink ke Copy seperti yang disebutkan dalam jawaban di atas. Untuk mendapatkan skin loading baik-baik saja!
Haijerome
2
Bekerja seperti pesona ... !!!!
Neeraj Garg
2
Ini tidak berfungsi untuk saya, bahkan tidak menghapus folder / pub / static. Ada ide lain?
goncalotomas
2
Tidak bekerja untuk saya :-(
Alaa M. Jaddou
7

Saya menghadapi masalah ini dan mencoba mencari tahu. Saya setuju dengan Chris O'Toole. Saya akan menambahkan langkah ekstra. Langkah saya adalah,

  1. Buka aplikasi / etc / di.xml dan cari Symlink. Periksa di bagian berikut.
<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>

Ganti Symlink dengan Salin kata. Menyimpan.

  1. Hapus semua folder di pub / statis. Jangan hapus .htaccess dan file lainnya.

  2. Jalankan xampp sebagai administrator. Jalankan baris perintah sebagai administrator. Lari grunt exec:<theme name>.

masukkan deskripsi gambar di sini

Anda akan melihat itu berjalan dengan baik.

Maka Anda bisa lari grunt less:<theme name>

masukkan deskripsi gambar di sini

Akhirnya kamu bisa lari grunt watch

masukkan deskripsi gambar di sini

Ketika Anda melakukan perubahan dalam lebih sedikit file (_theme.less atau _extend.less) secara otomatis akan membuat file style-l dan style-m css di pub / folder statis.

Saya menjalankan Magento 2.1 di windows 10.

cha
sumber
Sebenarnya kita tidak perlu langkah pertama.
cha
2

Ingatlah untuk memperbarui izin file setelah Magento membuat file statis baru ini. Mereka tidak dimiliki oleh www-data, jadi mereka akan memberikan 404.

Kevin
sumber
1

Dalam kasus saya itu bukan karena saya app/etc/di.xmltelah Magento\Framework\App\View\Asset\MaterializationStrategy\Symlinkseperti yang disebutkan oleh @Chrish. Itu karena salah satu modul saya memiliki kesalahan skrip di .phtmlfile saya . Saya akan merekomendasikan untuk memeriksa kode Anda dalam .phtmlfile. Dalam kasus saya itu diselesaikan dengan membuat koreksi pada file skrip saya initialize.phtml.

Kamal Singh
sumber
0

Saya menemukan penting untuk menggunakan izin yang benar untuk apache dengan mod_php untuk pub / static dan var / folder. Dari artikel 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 '{}' + 

Anda harus menjalankannya di terminal server. Itu memperbaiki saya 404 kesalahan untuk skrip dan gambar.

ps Tapi itu untuk Linux.

elektroid
sumber
Anda juga bisachmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
nick.graziano
0

Saya pikir cara yang tepat untuk melakukan ini adalah dari command line: cd ke direktori magento Anda dan jalankan perintah berikut:

php bin/magento setup:static-content:deploy

var/cacheDirektori kosong dan periksa.

kazimt9
sumber
0

Baru saja menghapus semua file di bawah pub/static/*. Magento akan secara otomatis menghasilkan file statis untuk Anda ketika Anda memuat halaman.

Paul
sumber
0

Anda harus menjalankan Xampp (apache, nginx) dll sebagai Administrator untuk memungkinkannya membuat Symlinks di Windows (diuji dengan Windows 10).

Liam Mitchell
sumber