URL路径Laravel中的重复项

时间:2019-05-25 14:05:41

标签: html laravel

当我在主页下可以访问URL时,我试图从导航栏中访问创建页面('http://todolist.test/todo/create'),但是当我尝试从显示页面访问时,URL具有访问权限重复('http://todolist.test/todo/todo/create') 网址中的“ todo”重复了2次。

<ul class="navbar-nav mr-auto">
          <li class="{{Request::is('/')? 'active' : ''}}">
            <a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="{{Request::is('todo/create')? 'active' : ''}}">
            <a class="nav-link" href="todo/create">Create Todo</a>
          </li>


        </ul>

创建页面路线 方法:GET | HEAD | URI:待办事项/创建|名称:todo.create |行动:App \ Http \ Controllers \ TodosController @ create |中间件:网络  显示页面路线 方法:GET | HEAD | URI:todo / {todo} |名称:todo.show |操作:App \ Http \ Controllers \ TodosController @ show |中间件:网络

2 个答案:

答案 0 :(得分:1)

我只需在您的网址中添加一个前导/:

<a class="nav-link" href="/todo/create">Create Todo</a>

答案 1 :(得分:0)

诸如href="todo/create"之类的链接引用会将这些单词添加到您当前的网址(在地址栏中),如果您所在的页面是http://yourdomain.com/,则指向http://yourdomain.com/todo/create

如果您随后使用相同的代码创建链接,然后再次单击它(假设它在标题中或在页面上静态实现),它将直接指向http://yourdomain.com/todo/create/todo/create

因此,我强烈建议您使用一种功能来“动态生成”您的网址(根据您的主机设置)进行动态处理。

asset('your/extension/goes/here')是laravel提供的功能,它的作用就是:生成您的base_url。

如果href="todo/create"收到以协议开头的网址(例如httphttps,则不会将字符串添加到网址中,而是直接调用它。

因此,在每种情况下使用href="{{ asset('todo/create') }}"都会渲染为href="http://yourdomain.com/todo/create",从而解决您的问题:)。