Bahagian hadapan - Isu penghalaan yang dihadapi semasa membangun dengan laravel
大家讲道理
大家讲道理 2017-05-16 16:50:56
0
1
583

Saya menggunakan laravel untuk pembangunan Direktori sumber statik dan penghalaan dalam projek akan mempunyai nama yang sama, seperti:

//web的静态资源路径
/public/web/xxx     

//定义的路由
Route::group(['prefix' => 'web'], function () {
    Route::get('/', 'XxxController@indexPage');
});

Jika dikonfigurasikan seperti ini, ralat 404 akan berlaku apabila menggunakan pelayan terbina dalam PHP untuk mengakses localhost:8000/web dalam persekitaran pembangunan:

The requested resource /web_dealer was not found on this server.

Selepas beberapa penyelidikan, nampaknya ia adalah kerana terdapat laluan sumber dengan nama yang sama dalam direktori awam, jadi pelayan tidak mempunyai sebab untuk memprosesnya secara langsung sebagai sumber statik. Tetapi sebenarnya, web ini hanyalah folder, jadi 404 di atas muncul.

Menggunakan pelayan apche untuk ujian, apache nampaknya mengubah hala (301) localhost:8000/web ke localhost:8000/web/, dan struktur direktori akan didedahkan pada halaman. Pilihan tetapan -Indeks hanya melumpuhkan paparan, tetapi localhost:8000/web masih akan diubah hala.

Saya ingin tahu cara mengkonfigurasinya jika anda ingin menyatukan laluan sumber statik dan penamaan laluan seperti yang ditunjukkan di atas. Atau adakah skema penamaan lain yang lebih baik?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(1)
仅有的幸福

Ini boleh dicapai dengan mengubah suai public/.htaccess (ujian tempatan LAMP diluluskan di bawah Linux Mint)

Langkah
Ubah suai fail .htaccess dalam direktori awam

Lokasi:

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Maksud asal ialah : Jika ia bukan direktori!-d, mahupun fail!-f, kemudian parse ke index.php

telah diubah suai kepada

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d

sekarang bermaksud : jika ia bukan fail !-f, kemudian parse ke index.php
(dalam erti kata !-d tidak lagi berguna)

Ujian tempatan lulus Pada masa ini tidak diketahui sama ada ia akan menyebabkan masalah lain.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan