Saya baru saja menginstal versi terbaru Magento yaitu Magento 2.3.0 di mesin wamp lokal dengan php 7.2.4
Menginstalnya menggunakan antarmuka baris perintah.
Tetapi ketika saya lelah untuk menjalankannya menunjukkan saya kesalahan suka
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'D:/wamp64/www/mage23/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js'
magento2
magento2.3.0
MageLerner
sumber
sumber
Jawaban:
Ya, ini masalah dengan windows. Windows menggunakan "\" sebagai pemisah, array "direktori" berisi entri dengan "/" sebagai pemisah, sehingga pemeriksaan akan selalu gagal. Jadi, Anda perlu memperbaiki ini dengan mengganti pemisah di file inti:
fungsi isPathInDirectories menggantikan kode di bawah ini dalam fungsi isPathInDirectories
sumber
DIRECTORY_SEPARATOR
seperti dunia lain dan tidak memiliki masalah khusus ini yang sepertinya merupakan satu-satunya hal dari bekerja di Windows?Bagi saya, solusi yang berhasil adalah dengan membuka file \ vendor \ magento \ framework \ View \ Element \ Template \ File \ Validator.php dan mengganti definisi fungsi di bawah ini seperti di bawah ini:
PS: Ini masalah khusus windows.
sumber
Magento 2.3 tidak mendukung windows. Anda dapat menemukan solusi saya di sini: masukkan uraian tautan di sini
sumber
Ini masalah inti bukan hanya Magento 2.3.0, tapi saya juga menghadapi masalah itu di Magento 2.2.7. Untuk membuat kode berfungsi di windows daripada menggunakan realpath, gunakan saja argumen $ path yang diteruskan ke metode ini
Buka path /vendor/magento/framework/View/Element/Template/File/Validator.php dan alih-alih baris
menggunakan
Atau ikuti diskusi ini https://github.com/magento/magento2/issues/19480
sumber
Di Magento 2.2.9 ganti /vendor/magento/framework/View/Element/Template/File/Validator.php kode fungsi isPathInDirectories dengan kode ini
sumber
Ini mungkin terjadi ketika berkembang di bawah Sistem Windows.
Pergi ke baris 140 di file Path /vendor/magento/framework/View/Element/Template/File/Validator.php Ganti kode baris ini
Dengan
Waspadalah terhadap baris kode ini
Ini mungkin tidak akan berhasil karena scape backslash php. Anda harus melakukan double backslash untuk memberi tahu PHP secara eksplisit bahwa itu tidak berurusan dengan baris baru di sini tetapi backslash.
sumber
Silakan Lihat itu, Ini harus tebasan ganda yaitu "\\"
sumber
Seperti disebutkan masalahnya adalah kompatibilitas Windows. Tetapi saya akan merekomendasikan untuk mengubahnya sedikit berbeda untuk bekerja bahkan ketika memigrasi sistem, misalnya untuk pengembangan lokal pada Windows dan kemudian penyebaran pada server Linux. Sehingga hanya jika Anda beroperasi pada Windows Anda akan menyesuaikan jalur.
Di
di
menggantikan
dengan:
a) PHP> = 7.2:
b) PHP <7.2:
sumber