Setelah memutakhirkan dari Magento 2.1.0 ke Magento 2.1.3 (menggunakan komposer) konten statis tidak memuat lagi. Di konsol browser saya dapat melihat bahwa semua file tidak tersedia (404):
Saya tidak melihat direktori dengan nama version*
di pub
direktori.
Apa yang sudah saya buat tetapi tidak membantu:
- atur semua izin
777
, tetapi tidak berhasil. - cache dibersihkan
- menghapus
pub/static/*
- membuat konten statis beberapa kali
- mengganti
.htaccess
file (dalampub/static
direktori) dengan file dari repositori resmi.
Info lain:
mod_rewrite
diaktifkanFollowSymLinks
diizinkan (dalam konfigurasi host default dan lokal.htaccess
)- Konfigurasi ini bekerja dengan baik dengan Magento 2.1.0 sebelum memperbarui ke 2.1.3
pub/static
dapat ditulis
Ada saran?
magento-2.1
magento-2.1.3
404
static-content
Siarhey Uchukhlebau
sumber
sumber
Jawaban:
Masalah utama disebabkan oleh pekerjaan penulisan ulang yang salah (seperti yang dikatakan @Marius). Tidak ada
RewriteBase
dalam direktori sayapub/static/
dan Apache tidak dapat menemukan file karena mencari mereka dari folder root. Setelah kami tambahkan:RewriteBase /pub/static
semuanya mulai bekerja.Bagaimana cara kerjanya:
dengan alamat ini:
penulisan ulang harus bekerja:
sebagai baris dimulai dari folder root:
itu tidak berfungsi dan tidak bisa mengalihkan ke file, diperlukan.
Menulis ulang tanpa basis:
Menulis ulang dengan basis:
Di sini bagian dari
.htaccess
file saya daripub/static
(penulisan ulang):Cara menonaktifkan pembuatan file statis:
Jika Anda tidak ingin menggunakan versi file statis, Anda dapat menonaktifkan fitur ini di area admin Magento:
Dimungkinkan untuk mengubah pengaturan ini untuk lingkup default menggunakan permintaan MySQL berikut :
Kemudian jalankan perintah berikutnya untuk menghapus cache konfigurasi:
PS: Jawaban saya sebenarnya untuk pengguna apache2. Jika Anda menggunakan NGINX lihat jawaban ini (oleh @ kevin-javitz)
sumber
dev/static/sign
ada maka masukkan.INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0')
sudo a2enmod rewrite
.Jika Anda menjalankan Nginx, berikut adalah perbaikannya. Anda mungkin memiliki file conf Anda sendiri, Anda perlu memperbarui bagian / static / dengan ini, mereka telah memperbarui bagian itu secara khusus: # Hapus tanda tangan dari file statis yang digunakan untuk mengatasi bagian cache browser:
sumber
RewriteRule ^version.+?/(.+)$ $1 [L]
Pergi ke database dan masukkan baris dalam tabel core_config_data:
sumber
Seharusnya tidak ada
version*
folder distatic
folder.Ini kemungkinan besar terjadi karena Anda tidak mengaktifkan mod_rewrite dalam instance Anda.
Jalan
pub/static/version1234/some/asset.js
harus ditulis ulangpub/static/some/asset.js
. Versi versi ada hanya untuk kedaluwarsa cache browser.sumber
mod_rewrite
dan diaktifkan:[root@web www]# httpd -M | grep "rewrite" rewrite_module (shared) Syntax OK
di .htaacess juga diaktifkanFollowSymLinks
diizinkan. Ini terjadi pada saya setelah menginstal versi terbaru dari github dan saya punya masalah dengan mod_rewrite dan dengan FollowSymLinks.FollowSymLinks
diatur sebagaiOptions +FollowSymLinks
dan tidak ada masalah dengan konfigurasi yang sama sebelum up-dating :(Sepertinya rilis 2.1.3 mengasumsikan nilai default untuk
Stores => Configuration => Developer => Static Files Settings => Sign Static Files
diatur ke Ya.Jadi alih-alih mengubah penulisan ulang, dimungkinkan untuk mengatur fitur ini ke Tidak.
Jika tidak mungkin melakukan ini dari admin, karena admin gagal memuat aset frontend, ubah / tambahkan pengaturan ini dalam
core_config_data
tabel:Masalah ini juga dicatat di Github: https://github.com/magento/magento2/issues/7869
sumber
Jika Anda menggunakan apache. Anda tidak boleh menghapus .htaccess dari pub / static. Anda bisa mendapatkan penggantinya di sini.
sumber
RewriteBase
.