URL 在 Laravel 8 中被添加了两次

Posted

技术标签:

【中文标题】URL 在 Laravel 8 中被添加了两次【英文标题】:URL gets added twice in Laravel 8 【发布时间】:2020-12-28 23:47:14 【问题描述】:

当我第二次按下导航按钮时,出于某种原因 浏览器中的 URL 重复了两次。澄清一下,第一次按钮点击将用户发送到正确的 URL,第二次点击由于 URL 重复而失败。

观察:

    我怀疑这可能是由于相对路径,因此当按两次系统按钮时,它应该再次添加相对路径。

    我正在使用@extends,并怀疑系统尝试加载@extends 两次。


第一次按下按钮(可见 URL):

http://localhost:8000/sites/tax-declarations/add-data

再次按下同一个按钮(可见 URL):

http://localhost:8000/sites/tax-declarations/sites/tax-declarations/add-data

路线

Route::view('/sites/tax-declarations/add-data', 'pages/sites/tax_declarations/add_data');

导航刀片

<div class="navigation">
    <ul>
        <li><a href="sites/tax-declarations/add-data">Add data</a></li>
    </ul>
</div>

【问题讨论】:

为什么用 Laravel 7 标记这个? 因为 Laravel 8 于 2 天前问世,即使我在当前环境 (Laravel 8) 中看到了这个问题,我记得在 Laravel 7 中也看到过同样的问题。我删除了 Laravel 7 标签以避免混乱。 您使用的是相对 URL,这就是它们的工作方式(它将您拥有的内容添加到当前目录/段)...或者在开头添加 / 以使其相对于站点的根目录或使用 URL 助手生成绝对 URL ...这与 Laravel 无关 @lagbox 我保持路由文件不变,但在导航文件 href 路径中添加了初始的 /。请将您的解释转为答案,我会继续批准。 如你所愿:-) 【参考方案1】:

使用相对 URL 时,“href”中的路径将附加到您所在的当前目录/段。您可以将/ 添加到相对路径的开头,以使该路径现在相对于站点的根目录。

更好的选择可能是使用其中一个 URL 助手为您生成绝对 URL:

<a href=" url('sites/tax-declarations/add-data') ">...</a>

Laravel 8.x Docs - URL Generation - Generating Basic URLsurl

【讨论】:

以上是关于URL 在 Laravel 8 中被添加了两次的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 邮件在添加密件抄送时会发送两次电子邮件

ViewDidLoad 调用了两次

textViewShouldBeginEditing 在 iOS7 中被调用两次

在 iOS7 上,applicationDidEnterBackground 被调用了两次

Nuxt apollo 智能查询被调用了两次。引擎盖下会发生啥?

Paypal 自适应支付返回 url 调用了两次