学习Laravel,我在AWS上使用Ubuntu服务器设置了一个开发区域。我可以创建一个深度的页面
Route::get('/campgrounds','CampgroundController@index');
这些工作正常,但当我深入两级时,他们不能工作。当我尝试创建一个两级深度的路线时,我得到一个"您寻找的那个页面不存在"。
Route::get('/campgrounds/create', function (){
return view('welcome');
});
我在logging.log文件中看不到任何错误信息。是否需要Laravel设置或需要更改Apache的设置?也许是.env
文件中的某些内容?
这是我的路线
# php artisan route:list
这是我的Apache站点配置:
<Directory /var/www/html/laravel/pubic>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Require all granted
</Directory>
AccessFileName .htaccess
答案 0 :(得分:1)
在Laravel中,将按照定义的顺序检查路线。一旦匹配,检查将停止,它将加载适当的关闭/控制器。
如果在具有相同模式的显式路由之前定义通配符路由,则通配符将首先匹配。
在此示例中,URI /campgrounds/create
将与第一个通配符路由匹配,即使已在以下位置定义了确切路由:
Route::get('/campgrounds/{campground}', ...);
Route::get('/campgrounds/create', ...);
在您的显式路线之后保留您的通配符路线,您应该没问题:
Route::get('/campgrounds/create', ...);
Route::get('/campgrounds/{campground}', ...);