You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.6中如何创建有效的相对链接?

解决Laravel 5.6中视图链接无法跳转的问题

嘿,刚上手Laravel的时候确实容易卡在这里——你现在的问题核心是没搞懂Laravel的路由机制:你不能直接通过URL访问resources/views里的blade文件,所有请求都必须经过路由转发,这是Laravel MVC架构的核心规则之一!

为什么你之前的写法都无效?

你尝试的那些链接之所以返回404,原因很简单:

  • /sample1、/samples/sample1:这些URL没有对应的路由规则,Laravel不知道该把请求转发到哪个视图
  • {{ url('/samples/sample1') }}:这个只是生成了URL字符串,但本质还是没有路由匹配它
  • 直接访问http://site.test/views/pages/samples/sample1:resources目录是受保护的,服务器不允许直接访问,Laravel的所有请求都必须经过public/index.php入口,所以这个路径本身就不合法

正确的解决步骤

1. 先配置路由(关键!)

打开项目根目录下的routes/web.php,这是Laravel处理前端网页路由的文件。你需要给每个sample页面添加路由规则:

方法一:单个配置路由(适合少量页面)
// 给sample1配置路由
Route::get('/samples/sample1', function () {
    // view()函数用点分隔目录路径,对应resources/views/pages/samples/sample1.blade.php
    return view('pages.samples.sample1');
})->name('samples.sample1'); // 给路由命名,方便后续生成链接

// 同理,给sample2到sample10添加类似的路由
Route::get('/samples/sample2', function () {
    return view('pages.samples.sample2');
})->name('samples.sample2');
// ... 重复到sample10
方法二:用路由参数批量处理(适合多个同类型页面)

如果有10个sample页面,写10个重复路由太麻烦,可以用路由参数来批量匹配:

Route::get('/samples/{sample}', function ($sample) {
    // 先验证参数是否是1-10的数字,避免非法请求
    if (!in_array($sample, range(1, 10))) {
        abort(404); // 返回404页面
    }
    // 动态拼接视图路径
    return view("pages.samples.sample{$sample}");
})->name('samples.show'); // 给路由命名

2. 在视图中生成正确的链接

现在路由配置好了,就可以在主链接页面里生成有效的跳转链接了:

如果用单个命名路由:
<a href="{{ route('samples.sample1') }}">Sample 1</a>
<a href="{{ route('samples.sample2') }}">Sample 2</a>
<!-- ... 直到sample10 -->
如果用批量路由参数:
<a href="{{ route('samples.show', ['sample' => 1]) }}">Sample 1</a>
<a href="{{ route('samples.show', ['sample' => 2]) }}">Sample 2</a>
<!-- ... 直到sample10 -->

额外小提示

  • 推荐用route()助手函数生成链接,而不是硬写URL:如果后续需要修改路由的URL路径,只要修改routes/web.php里的规则,所有用route()生成的链接都会自动更新,不用一个个改视图里的链接
  • 如果你的项目后续页面越来越多,建议用控制器来替代闭包路由,比如创建PagesController,在里面写处理sample页面的方法,让代码更规范易维护

内容的提问来源于stack exchange,提问作者tvwxyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:36:24