2014-12-02 182 views
0

我不太确定以下问题出在哪里(我正在使用PHP和laravel)。我有一个带有页眉和页脚的主要模板。我有一个视图(注册)来创建一些请求(视图,控制器和模型)。目前一切都很好。现在,我正在尝试添加一个编辑视图并创建一个新视图(RegisterEdit - 与之前的视图相同),但仅为给定ID填充值。在这个新视图中,页面上的所有链接(页眉和页脚)都是错误指向的。Laravel路由URL问题

在旧观点,链接到主页是这样的:

mywebsite.com/home 

但在编辑看来,这正在改变以

mywebsite.com/RegisterEdit/home 

以下是我的路线。

Route::get('Register', '[email protected]_Load'); 
Route::post('Register', '[email protected]'); 
Route::get('RegisterEdit/{id}', '[email protected]_Load'); 
Route::post('RegisterEdit', '[email protected]'); 

任何想法,这里有什么可能是错误的?

+0

你可以发布你的页眉和页脚的代码吗?这看起来像是它与绝对链接而不是你的路线文件的问题。 – 2014-12-02 15:53:09

+0

我一直在怀疑,但我的担心是如何与其余的意见合作。我已经注意到所有包含文件的这个问题。例如。 {{HTML :: script('js/jquery-1.11.1.js')}},也不会加载(它们在其他视图中工作正常)。这是我的网址“Profile”(将其修改为/ Profile)可以工作。但我感兴趣的是为什么它在其他观点工作。 – Chandra 2014-12-02 16:44:26

+0

如果您在视图中使用代码“Home”,那么您不应该有这些问题。 – 2014-12-02 16:46:17

回答

0

要建立在你的代码的网址,你应该使用URL::to,例如:

<a href="{{ URL::to('home')">Home page</a> 

,或者你应该在你的头你<head>部分添加:

<base href="http://mywebsite.com/"> 

(斜线这里需要域名后)。

+0

此更改也适用。但我想知道为什么它在其他地方工作。同样,我所有的包含文件都有相同的问题(js文件)。 (/js/bootstrap.min.js)更改为(RegisterEdit/js/bootstrap.min.js)。 – Chandra 2014-12-02 16:57:51

+0

@Chandra这是因为如果你不使用绝对路径(在开始时使用http),所有的url都是相对于当前路径的,所以如果你在'mywebsite.com/RegisterEdit'目录中,'home'会被追加到这个路径,为了防止它,你需要或者使用基础href(所有的URL都将相对于基础href)或者在任何地方使用绝对路径 – 2014-12-02 17:09:49

+0

感谢Marcin。这是一个公平的观点,我意识到这一点。我的问题是当我在mywebsite.com/Register,它指向mywebsite.com/home,但是当我在mywebsite.com/RegisterEdit时,它指向mywebsite.com/RegisterEdit/home。我只会再看一遍。 – Chandra 2014-12-02 17:48:22