Dalam proses pembangunan web, JavaScript (selepas ini dirujuk sebagai JS) sering digunakan untuk interaksi halaman, dan menggunakan ThinkPHP dalam rangka kerja PHP, terdapat banyak kaedah mudah untuk merujuk fail JS dengan mudah. Walau bagaimanapun, kadangkala kami menghadapi masalah bahawa JS tidak boleh dimuatkan, yang membawa masalah tertentu kepada kerja pembangunan kami. Artikel ini akan memperkenalkan masalah fail JS gagal dimuatkan apabila menggunakan ThinkPHP dan penyelesaiannya.
Apabila membangun menggunakan rangka kerja ThinkPHP, kami biasanya meletakkan fail JS dalam folder js dalam direktori awam dan menggunakan pernyataan berikut untuk merujuk fail JS:
<script src="__PUBLIC__/js/example.js"></script>
Antaranya, __PUBLIC__
ialah pemalar terbina dalam dalam ThinkPHP, menunjuk ke laluan ke direktori awam. Nampaknya tiada masalah untuk merujuk fail JS dengan cara ini, tetapi kadangkala kami mendapati bahawa fail JS tidak dimuatkan, menyebabkan interaksi halaman gagal diteruskan seperti biasa.
Mula-mula, kita perlu menyemak sama ada laluan yang ditunjukkan oleh __PUBLIC__
adalah betul. Kita boleh memasukkan laluan berikut dalam bar alamat penyemak imbas untuk menyemak sama ada fail JS boleh diakses seperti biasa:
http://yourdomain.com/js/example.js
Jika ia boleh diakses secara normal, ini bermakna laluan ditetapkan dengan betul. Jika tidak, kami perlu menyemak sama ada tetapan laluan adalah betul dan pastikan laluan sebenar fail sepadan dengan laluan yang kami tetapkan.
Jika fail JS wujud dalam laluan yang kami tetapkan tetapi masih tidak boleh dimuatkan, maka kami perlu mempertimbangkan cara untuk mengubah suai laluan rujukan. Kadangkala, menggunakan laluan relatif boleh menyebabkan fail JS tidak dimuatkan dengan betul, jadi kami boleh cuba menggunakan laluan mutlak untuk rujukan.
Dengan mengandaikan bahawa aplikasi kami dipasang di bawah laluan http://yourdomain.com/yourapp/
, kami boleh menggunakan pernyataan berikut untuk merujuk fail JS:
<script src="/yourapp/public/js/example.js"></script>
Laluan bermula dengan garis miring /
, yang bermaksud Laluan mutlak, menunjuk ke direktori awam/js dalam direktori akar keseluruhan tapak web.
Jika dua kaedah di atas masih tidak dapat menyelesaikan masalah tidak dapat memuatkan fail JS, maka kita boleh cuba mengubah suai fail konfigurasi Apache pelayan. Kita perlu membuka fail konfigurasi Apache httpd.conf
dan mencari pernyataan berikut:
<Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory>
Antaranya, AllowOverride None
bermaksud arahan dalam fail .htaccess tidak dibenarkan untuk menulis ganti arahan dalam fail konfigurasi utama. Dalam rangka kerja ThinkPHP, kami biasanya menggunakan fail .htaccess untuk menulis semula URL, jadi AllowOverride
perlu ditetapkan kepada All
. Pernyataan yang diubah suai adalah seperti berikut:
<Directory /> Options FollowSymLinks AllowOverride All Require all denied </Directory>
Selepas pengubahsuaian, kita perlu memulakan semula pelayan Apache.
Melalui penyelesaian di atas, kita boleh menyelesaikan masalah yang JS tidak dapat dimuatkan dengan mudah apabila menggunakan rangka kerja ThinkPHP. Dalam proses membetulkan masalah, kami bukan sahaja dapat memahami kesan laluan rujukan dan konfigurasi pelayan pada pemuatan fail JS, tetapi juga memperdalam pemahaman kami tentang rangka kerja ThinkPHP.
Atas ialah kandungan terperinci Mari kita bincangkan tentang masalah dan penyelesaian fail JS yang gagal dimuatkan dalam ThinkPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!