Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Laravel5.0中的动态URL_Html_Laravel_Laravel 5 - Fatal编程技术网

Html Laravel5.0中的动态URL

Html Laravel5.0中的动态URL,html,laravel,laravel-5,Html,Laravel,Laravel 5,我试图在我的web应用程序的所有页面上显示一个特定的链接。链接如下所示 我的路线文件 Route::get('home', 'HomeController@index'); Route::get('path1/path2/path3', 'SomeController@someFunction'); Route::get('my-link', 'SomeController@myLink'); 浏览web应用程序时,当我在mydoamin.com/home时,链接地址是mydomain.co

我试图在我的web应用程序的所有页面上显示一个特定的链接。链接如下所示

我的路线文件

Route::get('home', 'HomeController@index');
Route::get('path1/path2/path3', 'SomeController@someFunction');
Route::get('my-link', 'SomeController@myLink');
浏览web应用程序时,当我在
mydoamin.com/home
时,链接地址是
mydomain.com/my link
,这是正确的

但是当我在URL
mydoamin.com/path1/path2/path3
时,链接地址变成
mydoamin.com/path1/path2/my link
。因此,在点击链接后,我得到404错误,因为路径不存在

如何使链接在所有页面上始终显示
mydomain.com/my link
,而不硬编码域名

注意:我已将链接代码
放在部分文件中;我将该文件包含在所有页面中。

应该是
href=“/my link”
/
表示从根开始

您可以尝试不同的方法,如
/my link
/my link
。/../my link
来查看发生了什么


请参阅为什么不应该使用
/my link

您可以在根目录(
www.domain.com/my link
)上运行的站点上使用
。但是如果在子目录中运行它,则需要更改所有url

这就是为什么Laravel引入了
命名路由
,这将自动创建正确的url

例如:

如果您的网站运行于
www.domain.com/my website/
,并且需要指向
/my link
,则需要将项目中的所有链接更改为
/my website/…

因此,我建议使用
命名路由


如何使用
命名路由

命名路由允许为特定路由方便地生成URL或重定向

这是您需要使用的de代码:

Route::get('home', ['as' => 'home', 'uses' => 'HomeController@index']);
Route::get('path1/path2/path3', ['as' => 'path3', 'uses' => 'SomeController@someFunction']);
Route::get('my-link', ['as' => 'my-link', 'uses' => 'SomeController@myLink']);
之后,您可以使用:

<a href="{{ url(route('my-link')) }}">
    Some text for the link!
</a>

Laravel将自动为您要使用的命名路由创建正确的url

希望这能奏效


更多信息参见

我同意你的看法。您的解决方案更好。谢谢@linuxartisan!:)