Html Laravel5.0中的动态URL
我试图在我的web应用程序的所有页面上显示一个特定的链接。链接如下所示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
我的路线文件
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
,这是正确的
但是当我在URLmydoamin.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!:)