Laravel路由和路由参数


Laravel routing and route parameters

我在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

它加载视图并传递所有数据,但它从如下url获取我的所有资产,如样式表、图像和脚本:

http://localhost/mysitefolder/public/test1/test2/js/jquery.js

为什么会这样
提前感谢!

两个解决方案要么在URL的开头使用/,这样就不会使用相对寻址,要么使用laravel的辅助函数{{ asset('/js/script.js') }}

如果您在url的开头不使用"/",则会将其视为相对地址,并在其开头添加当前位置。

如果您的应用程序没有在根级别上提供服务,有时甚至"/"也不会起作用。例如,如果您的应用程序位于http://localhost/yourapplication,那么/将引用您的localhost而不是应用程序,这就是为什么最好的方法是使用laravel的helper函数。