视图显示不正确。 Laravel
View not displaying correctly. Laravel
在我的 Laravel 项目中,我设置了一个路由来显示用户的个人资料页面。
Route::get('{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
这条路线一切正常。但是,我想将路线更改为
Route::get('profile/{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
当我执行此操作并导航到 my.app:8000/profile/1
时,我的 css 和 html 没问题,但我的 link 和 jquery 图像损坏了不再有效
我也试过了
Route::get('/profile/{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
我正在使用 src="{{URL::asset("images/users/xxxxxxx")}}"
加载我的图像以及 jquery
我的路线文件中没有其他地方有 profile/
的路线
不确定我能做什么。有人知道解决这个问题的办法吗?
编辑:
这是我的 html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!--Main Style Sheet-->
{{ HTML::style('css/style.css'); }}
<!-- JQuery -->
<script src="/jquery/jquery-1.11.0.js"></script>
</head>
<body class="main-body">
<!-- this image works now that i added the leading / -->
<img src="{{ URL::asset("/images/users/{$user->id}/profilePictures/176thumb-{$user->profilePicture->url}") }}" alt="{{ $user->first_name }} {{ $user->last_name }} Profile Picture" width="176" height="176">
<!-- the jQuery For this is not working -->
<ul class="list-grid">
<li>
<div class="profile-example">
<div class="add-box"></div>
</div>
</li>
</ul>
<!-- Include woodmark. This is the jquery plugin that isn't working -->
<script src="/jquery/jquery.wookmark.js"></script>
<!--Woodmark settings-->
<script type="text/javascript">
(function ($){
$(function() {
var $handler = $('.list-grid li');
$handler.wookmark({
// Prepare layout options.
align: 'center',
autoResize: true,
comparator: null,
container: $('html'),
direction: undefined,
ignoreInactiveItems: true,
itemWidth: 560,
fillEmptySpace: false,
flexibleWidth: true,
offset: 8,
onLayoutChanged: undefined,
outerOffset: 0,
possibleFilters: [],
resizeDelay: 50,
verticalOffset: undefined
});
});
})(jQuery);
</script>
</body>
</html>
我认为这是您的 JS/image 路径的问题,而不是 Laravel。当您包含 jQuery/images 时,听起来您正在使用 relative 路径,如下所示:
<script src="jquery/jquery.js>
<img src="img/image.jpg">
当您以这种方式调用资源时,如果您在根级别,它将查找 http://example.com/img/image.jpg
,但如果您在 /profile
,它将查找 http://example.com/profile/img/image.jpg
.
如果在前面加斜杠,那么路径总是从web根目录开始:
<script src="/jquery/jquery.js>
<img src="/img/image.jpg">
如果您的 CSS 没问题,那么我怀疑您已经在使用绝对路径了。
我用了
{{ HTML::script('jquery/jquery.js'); }}
而不是
<script src="/jquery/jquery.js"></script>
现在一切正常
在我的 Laravel 项目中,我设置了一个路由来显示用户的个人资料页面。
Route::get('{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
这条路线一切正常。但是,我想将路线更改为
Route::get('profile/{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
当我执行此操作并导航到 my.app:8000/profile/1
时,我的 css 和 html 没问题,但我的 link 和 jquery 图像损坏了不再有效
我也试过了
Route::get('/profile/{id}', ['as' => 'profile', 'uses' => 'UsersController@show']);
我正在使用 src="{{URL::asset("images/users/xxxxxxx")}}"
加载我的图像以及 jquery
我的路线文件中没有其他地方有 profile/
不确定我能做什么。有人知道解决这个问题的办法吗?
编辑:
这是我的 html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!--Main Style Sheet-->
{{ HTML::style('css/style.css'); }}
<!-- JQuery -->
<script src="/jquery/jquery-1.11.0.js"></script>
</head>
<body class="main-body">
<!-- this image works now that i added the leading / -->
<img src="{{ URL::asset("/images/users/{$user->id}/profilePictures/176thumb-{$user->profilePicture->url}") }}" alt="{{ $user->first_name }} {{ $user->last_name }} Profile Picture" width="176" height="176">
<!-- the jQuery For this is not working -->
<ul class="list-grid">
<li>
<div class="profile-example">
<div class="add-box"></div>
</div>
</li>
</ul>
<!-- Include woodmark. This is the jquery plugin that isn't working -->
<script src="/jquery/jquery.wookmark.js"></script>
<!--Woodmark settings-->
<script type="text/javascript">
(function ($){
$(function() {
var $handler = $('.list-grid li');
$handler.wookmark({
// Prepare layout options.
align: 'center',
autoResize: true,
comparator: null,
container: $('html'),
direction: undefined,
ignoreInactiveItems: true,
itemWidth: 560,
fillEmptySpace: false,
flexibleWidth: true,
offset: 8,
onLayoutChanged: undefined,
outerOffset: 0,
possibleFilters: [],
resizeDelay: 50,
verticalOffset: undefined
});
});
})(jQuery);
</script>
</body>
</html>
我认为这是您的 JS/image 路径的问题,而不是 Laravel。当您包含 jQuery/images 时,听起来您正在使用 relative 路径,如下所示:
<script src="jquery/jquery.js>
<img src="img/image.jpg">
当您以这种方式调用资源时,如果您在根级别,它将查找 http://example.com/img/image.jpg
,但如果您在 /profile
,它将查找 http://example.com/profile/img/image.jpg
.
如果在前面加斜杠,那么路径总是从web根目录开始:
<script src="/jquery/jquery.js>
<img src="/img/image.jpg">
如果您的 CSS 没问题,那么我怀疑您已经在使用绝对路径了。
我用了
{{ HTML::script('jquery/jquery.js'); }}
而不是
<script src="/jquery/jquery.js"></script>
现在一切正常