我在route.php文件中定义了路由,如下所示:
Route::get('{test1}/{test2}/{test3}', function($test1, $test2, $test3) {
$result = [$test1, $test2, $test3];
return view('view', compact('result'));
});
它在我的控制器中工作正常,但在浏览器中看到它时我在浏览器中写这样的东西时在视图部分:
http://localhost/mysitefolder/public/test1/test2/test3
它加载视图并传递所有数据但它从我的样式表,图像和脚本获取我的所有资产,如下所示:
http://localhost/mysitefolder/public/test1/test2/js/jquery.js
为什么会这样? 提前谢谢!
答案 0 :(得分:1)
两个解决方案在您的网址开头使用/
,以便不使用相对寻址或使用laravel的帮助函数{{ asset('/js/script.js') }}
。
当您在网址的开头不使用“/”时,会将其视为相对地址,并在其开头添加当前位置。
如果您的应用程序未在Root级别提供,有时甚至“/”也无效。例如,您的应用程序位于http://localhost/yourapplication
,然后/
将引用您的localhost而不是application,这就是为什么最好的方法是使用laravel的帮助函数。