在Laravel有这条路线:
Route::get('post/{id}/comments','PostCommentsController@showComments');
我试图从php视图中的锚点html标记href属性访问它,它使用angular来呈现项目列表。这是该视图中的一段代码(_post_content.php):
<ul class="media-list" >
<li class="media" ng-repeat="item in items" >
<div class="media-body">
<div class="row">
<div class="col-sm-9"><h5 class="media-heading">
<a href="post/{{item.id}}/comments">{{ item.title }}</a> </h5></div>
</div>
</div>
</li>
</ul>
控制器PostCommentsController在方法showComments
中创建的新视图类似于_post_content.php,但它显示了帖子ID(ng-repeat
中的item.id)的注释。
但是,对于整个应用程序的其他链接,即使在其主要布局中:导航栏和徽标锚,图像锚等;它的网址前面是路径/帖子/ 4 /评论。
例如,如果我点击_post_content.php的第4项,主布局左侧导航栏中名为博客的链接,将其显示为url:/ post / 4 / comments / blog
当然这条路线不存在并且打破了所有应用程序。
请解决这个奇怪行为的任何线索?虽然我没有使用角度路线,但角度是否可能导致它?
感谢您的帮助。
答案 0 :(得分:0)
如果您使用其他链接的相对路径,则应使用正斜杠添加它们,而不是:
<a href="blog">
你应该有:
<a href="/blog">
这样,链接将相对于根而不是当前路径(在您的情况下为/post/id/comments
)。
作为替代方案,您还可以使用base
元标记,将其包含在您的网页“<head>
中:
<base href="http://yourdomain.com/">
但请注意,使用可能会影响您的应用程序的base
会产生一些副作用。阅读本文以获取更多信息:Is it recommended to use the <base> html tag?。