Magento 2 CSS dan JavaScript tidak memuat dari folder yang benar

35

Saya berharap seseorang di sini dapat membantu. Saya mencoba untuk menginstal dan menjalankan Magento 2 di WAMP pada mesin Windows 7 dengan sedikit keberhasilan.

Setelah melompati banyak dan berbagai rintangan untuk mendapatkan situs untuk memuat saya sekarang dihadapkan dengan 404 tanggapan dan tidak ada gaya atau memuat javascript.

Spesifikasi adalah sebagai berikut:

  • Magento-CE-2.0.0 + Sampel
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Ketika saya melihat konsol browser di antara kesalahan adalah upaya untuk mengakses file yang tidak ada di folder pub / statis. Folder "frontend" tidak dimuat dan sebagian besar file ada. Namun saya perhatikan bahwa beberapa file CSS tidak ada.

Saat menjalankan perintah penggunaan PHP

php bin/magento setup:static-content:deploy

yang disebutkan dalam posting lain saya mendapatkan kesalahan di bawah ini. Saya tidak yakin bagaimana cara memperbaikinya?

Kesalahan fatal: Ukuran memori yang diijinkan 134217728 byte habis (mencoba mengalokasikan 64 byte) dalam C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php on line 45

Setiap bantuan akan sangat dihargai.

MEMPERBARUI

Saya meningkatkan memori PHP dan menjalankan script php deploy lagi. Kali ini tidak salah dan dieksekusi sepenuhnya. Namun masalah yang sama seperti yang dijelaskan di atas masih ada. Situs dimuat tetapi setiap upaya untuk memuat halaman atau aset menghasilkan halaman 404 tidak ditemukan kesalahan tanpa gaya yang diterapkan.

Silakan lihat di bawah ini kesalahan dalam Inspektur Chrome

masukkan deskripsi gambar di sini

Lagi
sumber
@TejabhagavanKollepara Pertanyaan ini ditanyakan terlebih dahulu, dibentuk dengan baik, memiliki jawaban yang baik, jadi IMO pertanyaan lainnya adalah kandidat yang menipu, bukan yang ini ... Btw, jika bendera pada pertanyaan lain sebagai duplikat dari yang ini ditolak , tidak perlu menandai pertanyaan ini sebagai duplikat dari yang lain untuk mencoba mencapai hal yang sama.
7ochem
Lihat jawaban SA juga - instalasi Magento baru dalam mode "default" (bukan "produksi") dan tidak memerlukan konten statis yang digunakan, yang Anda diminta untuk lakukan di semua jawaban lain.
Jānis Elmeris

Jawaban:

50

SOLUSI # 1 (JIKA ANDA INGIN mengedit XML FILE)

Saya ingin Anda mengunduh zip Magento 2 magentocommerce.com/downloaddengan data sampel, membuat db baru di phpmyadmin , ekstrak zip di folder htdocs . Instal Magento 2 tetapi jangan gunakan localhost gunakan 127.0.0.1 di URL toko dan URL admin. Setelah instalasi berhasil, JANGAN menjalankan magento.

Sekarang kita akan menghapus / menghapus cache dan sesi Magento 2. Buka jalur berikut dan hapus semuanya:

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

Ketika Magento 2 tidak dalam mode produksi, ia akan mencoba untuk membuat symlink untuk beberapa sumber daya statis di server lokal. Kita harus mengubah perilaku Magento 2 dengan pergi mengedit ROOT > app > etc > di.xmlfile. Buka di.xmldi editor kode favorit Anda, cari virtualType name="developerMaterialization"bagian. Di bagian di bawah ini, Anda akan menemukan item <item name="view_preprocessed" xsi:type="object">yang perlu diubah. Anda dapat memodifikasinya dengan mengubah konten berikut:

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

Untuk:

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

Sekarang langkah terakhir, hapus juga file lama yang dibuat di ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

SOLUSI # 2

Pasang Komposer. Sekarang saya ingin Anda mengunduh Magento 2 zip dari magentocommerce.com/download, membuat db baru di phpmyadmin , ekstrak zip di folder htdocs . Instal Magento 2 tetapi jangan gunakan localhost gunakan 127.0.0.1 di URL toko dan URL admin. Setelah instalasi berhasil, JANGAN menjalankan magento.

Sekarang kita akan memverifikasi pemasangan Komposer, Menyebarkan konten statis, menghapus / membersihkan cache Magento dan mengindeks ulang blok Magento 2. Untuk melakukan semua tindakan di atas, tekan WINDOWS KEY + R untuk membuka dialog RUN dan ketik "cmd" untuk membuka Command Prompt.

Ketik " cd PATH_TO_YOUR_MAGENTO2_FILES " untuk masuk ke direktori ROOT Magento 2.

Sekarang untuk memverifikasi pemasangan Komposer di direktori di atas, ketik " komposer instal ".

Jika Anda mendapatkan kesalahan dalam langkah ini, silakan periksa instalasi Komposer Anda

Pada langkah ini, kami menyiapkan konten statis untuk digunakan di toko Magento kami. Untuk melakukan ini, ketik " setup php bin / magento: static-content: deploy ".

Untuk mereka yang menggunakan Magento 2.2.x

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

Jika Anda mendapatkan kesalahan, periksa Variabel Lingkungan PHP.EXE dan PHP.INI Anda

Kosongkan / Bilas cache Magento dengan mengetik “ php bin / cache cache: flush ” di CMD.

Dan akhirnya, untuk Reindex Magento Static Blocks ketik " php bin / magento indexer: reindex ".

Anda selesai dengan instalasi Magento 2 yang berhasil.

Fayyaz Khattak
sumber
4
Juga dalam perubahan php.ini max_execution_time 500, memory_limit untuk 2048M, post_max_size untuk 2048M, upload_max_filesize untuk 2048M dan max_file_uploads ke 2048.
Fayyaz Khattak
Terima kasih atas tanggapan cepat Anda. Saya telah membuat perubahan ini tetapi tidak berpengaruh. Saya me-restart server WAMP setelah melakukan perubahan. Saya telah mengedit pertanyaan untuk menunjukkan kesalahan yang dapat saya lihat di inspektur Chrome
E.Gain
Oh, saya minta maaf untuk menyebutkan satu hal lagi, pertama-tama hapus semua cache dan sesi, buat perubahan di.xml dan hapus semua dari ROOT> pub> static> HAPUS SEMUA KECUALI.
KEBERUNTUNGAN
1
@MagenX Ini adalah pandangan setiap orang bahwa alat mana yang lebih dia sukai untuk digunakan. Di mata Anda, Anda mengkritik segala sesuatu sebagai palu daripada membagikan pandangan Anda tentang solusi.
Fayyaz Khattak
1
Solusi # 2 bekerja seperti pesona, terima kasih telah menyelamatkan saya berjam-jam jika bukan hari, berurusan dengan masalah ini!
Jonathan Marzullo
11

Anda hanya perlu memperbarui file apache2.conf.

Di Ubuntu 16.04

  1. Buka dan edit file /etc/apache2/apache2.conf
  2. Arahkan ke tempat di file apache2.conf <Directory /var/www/>
  3. Ubah "AllowOverride None"ke"AllowOverride All"
  4. Simpan file
  5. Mengulang kembali apache2 -> sudo service apache2 restart
SA
sumber
Sangat sulit menemukan jawaban ini! Di tempat lain, orang menyarankan (kembali) menyebarkan konten statis walaupun instalasi Magento baru dalam mode "default" (bukan "produksi") dan tidak memerlukan konten statis digunakan.
Jānis Elmeris
10

Jika Anda menghadapi masalah desain pemuatan laman css dan js setelah pemasangan di magento2

ikuti langkah- berikut:

buka terminal dan arahkan ke root web magento

 $ cd / var / www / html / magento2 

Langkah 1.

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

Langkah 2.

$ php bin / magento indexer: reindex

Langkah 3.

pastikan apache "rewrite_module" diaktifkan dan kemudian restart server

Langkah 4.

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

Langkah 5.

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

Langkah 6.

hapus folder cache di bawah var / cache

Langkah di atas berhasil. Saya harap ini akan bekerja untuk Anda juga.

Beri tahu saya jika ada masalah. :)

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

Arvind
sumber
1
bagaimana menjalankan perintah ini di windows?
Hassan ALi
1
Ini bekerja untuk saya hanya untuk 3 langkah pertama. :)
hln
6
Tidak begitu pintar untuk mengatur izin ke 777 untuk semua file di server.
Chris Gudn
1
Saya tidak terlalu terkesan dengan langkah di mana Anda memberikan izin baca baca penuh untuk seluruh instalasi magento.
Cyclonecode
1
pengaturan izin ke 777 adalah saran yang buruk tetapi mudah-mudahan setiap sysadmin akan tahu lebih baik.
John Hall
6

Bagi saya itu hanya karena mod_rewrite tidak diaktifkan.

sudo a2enmod rewrite

dan

service apache2 restart

Haim
sumber
1
solusi sempurna !!! +1 :)
SagarPPanchal
6

Saya memiliki masalah yang sama diselesaikan dengan menambahkan

sudo nano /etc/apache2/apache2.conf

Ubah ini

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

untuk ini

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

Anda juga harus mengaktifkan mod_rewritedan menginstal modul sertifikat apache2 ssl:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart
Chaitanya
sumber
1
Ini, ditambah rm -rf var / * bekerja untuk saya. Tempat yang bagus dan bagus.
Jon Holland
6

Berikut adalah solusi paling sederhana jika menunjukkan nama versi di jalur css

seperti: pub / static / version323334 /

kemudian jalankan kueri ini di mysql

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

setelah itu kosongkan cache config

 bin/magento cache:clean config

Anda juga dapat menonaktifkan versi file statis dari admin

masukkan deskripsi gambar di sini

Surendra Kumar Ahir
sumber
4
Ini bekerja untuk saya, terima kasih. Namun, kueri perlu diperbaiki INSERT INTO core_config_data (path, value) VALUES ('dev / static / sign', 0);
Aftab Naveed
apa itu path dan values
zus
path, value isian field isian saya sudah mendefinisikan nilai (dev / static / sign, 0), jalankan saja sql ini seharusnya berfungsi
Surendra Kumar Ahir
solusi sempurna !!! membuat hari saya :) +1
SagarPPanchal
5
  1. Cobalah untuk menonaktifkan cache jika Anda tidak menonaktifkannya sebelumnya
  2. Pastikan Anda memiliki versi terbaru Magento dengan kode bersih. Jika Anda memodifikasi atau menyesuaikan sesuatu, pastikan perbaiki semua kesalahan.
  3. Menjalankan beberapa perintah di bawah ini dapat membantu Anda.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Hapus folder di

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

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

mrtuvn
sumber
3

Dalam kasus saya, saya tidak sengaja menghapus .htaccessfile dari ROOT/pub/dan ROOT/pub/staticfolder. Kemudian mulai berfungsi ketika saya mengembalikannya .

Elavarasan
sumber
2

Terpecahkan !!!

Jalankan perintah berikut di antarmuka CLI dari folder root Magento2 Anda:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Kemudian hapus folder var dengan perintah ini di root Anda dari Magento2.

rm -rf var/*

Kemudian segarkan beranda dan panel admin Anda. Bekerja !!!!! Keren !!!!

Mukesh Prajapati
sumber
1

Saya memiliki masalah yang sama dengan 404s. Saya memecahkannya dengan memastikan arahan VirtualHost di Apache benar. Inilah VirtualHost saya:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>
colin
sumber
Dan bisakah Anda juga mengatakan, apa yang salah sebelumnya? Kalau tidak, contoh ini tidak akan banyak membantu orang lain.
Fabian Schmengler
0

Saya memiliki masalah yang sama persis seperti OP dan itu hanya karena saya mengatur lokal saya en_AU, jadi menggunakan perintah penyebaran standar hanya menghasilkan en_USkonten. Anda harus menambahkan lokal yang sebenarnya Anda gunakan ke EN dari perintah, seperti ini:

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

Saya mencoba solusi di atas. Tapi itu tidak membantu saya. Meskipun demikian, saya menggunakan perintah yang sama yang mereka sebutkan dengan perubahan urutan. Mereka,

  1. membersihkan cache, composer_home, generation, log, page_cache, tmp dan view_preproses dari direktori var

  2. jalankan perintah berikut satu per satu.

php bin / magento indexer: reindex

cache bin / magento php: flush

setup php bin / magento: static-content: deploy

Saya harap ini dapat membantu orang seperti saya.

TS Guhan
sumber
0

Nonaktifkan mod_pagespeed

Pagespeed memproses instance "cached" dari konten Anda dengan singkatan, yaitu jika ini adalah file normal.

image.css

Ini akan ditetapkan sebagai berikut.

image.pagespeed.css

Di atas adalah contoh yang sangat sederhana, tetapi Anda sudah bisa melihat di mana masalah yang mendasarinya. Hal ini dapat menyebabkan pemuatan konten statis yang tidak tepat karena tidak dapat ditemukan melalui jalur inti, karena fakta bahwa itu bersifat sementara. Ini adalah masalah bawaan dengan Mod_Pagespeed, mengapa kami menyarankan agar dinonaktifkan.

jawaban dari dukungan komet cepat, dan itu memecahkan masalah saya

CDzWebDev
sumber
0

Untuk Ubuntu 18.04 (Bionic). Saya telah menggunakan langkah-langkah berikut untuk memuat file statis dengan benar.

Setelah instalasi selesai:

Pastikan modul apache 'menulis ulang' diaktifkan jika tidak maka lakukan hal berikut

  • cd /etc/apache2
  • jalankan perintah a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Kemudian buat perubahan berikut

Ubah dari:

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

untuk

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

Kemudian restart apache

sudo service apache2 restart

atau

sudo /etc/init.d/apache2 restart

Kemudian ubah izin untuk <magento root director>

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

Kemudian gunakan konten statis

  • php bin/magento setup:static-content:deploy -f (-f diperlukan jika Anda dalam pengembangan env)

Lalu bersihkan cache dan indeks ulang

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

ATAU

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

Kemudian akses beranda Anda menggunakan

  • 127.0.0.1/your_configured_url dari pada localhost/your_configured_url
FarhanS
sumber
0

Parit komposer dan instal menggunakan zip terbaru dari sini

Itu berhasil bagi saya

Shankar Thyagarajan
sumber