我使用此代码实现管理区域路由,但Route::get('/',...)
无效,似乎我应该使用/
以外的get
以外的任何其他内容,否则当我浏览mysite/admin/
时,laravel没有加载视图。
Route::group(['prefix' => 'admin', 'namespace' => 'admin', 'as' => 'admin'], function() {
Route::get('/', function() {
return view('backend.index');
});
Route::resource('post', 'PostController');
});
更新:admin
中的public
文件夹为public/admin
。看来Laravel打开这个目录而不是通过路线!
是正常的吗?
公用文件夹结构优先于Route::get()
吗?
答案 0 :(得分:1)
如果admin
文件夹中有public
个文件夹,则显示此目录内容是正常的,但这不是Laravel问题。
如果你查看public/.htaccess
,你就会有这样的事情:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
因此,如果public
目录中存在目录或文件,Laravel将不会启动应用程序,但服务器将显示此目录或此文件。这是应该做的,因为如果没有这样的规则没有CSS文件,可以显示JavaScript文件或图像。
您应该做的是将public
文件夹中的目录名从admin
更改为其他内容(然后在代码中进行更改以反映此更改)或将admin
路由更改为别的什么