Laravel 5样式表和脚本未加载非基本路由

时间:2015-06-13 18:55:40

标签: laravel model-view-controller laravel-5

我无法在Laravel 5应用中将我的样式表,脚本和图片链接到非基本路线。当我访问example.com/about脚本和样式表工作正常但如果我访问example.com/about/something脚本和样式表链接到example.com/about/css/style.css而不是example.com/css /style.css

我的代码如下:

routes.php文件:

 Route::get('about/{slug?}', ['as' => 'officerProfile', 'uses' => 'PagesController@about']);

PagesController.php:

public function about($slug = 'president')
{
    $officers = Officer::all();
    $currentOfficer = Officer::where('slug', $slug)->first();
    return view("pages.about", ['title' => $this->makeTitle('Learn About Us')])->with('officers', $officers)->with('currentOfficer', $currentOfficer);
}

layout.blade.php:

{!! HTML::script('https://code.jquery.com/jquery-2.1.4.min.js') !!}
{!! HTML::script('js/skel.min.js') !!}
{!! HTML::script('js/skel-layers.min.js') !!}
{!! HTML::script('js/init.js') !!}
{!! HTML::script('js/scripts.js') !!}
<noscript>
    {!! HTML::style('css/skel.css') !!}
    {!! HTML::style('css/style.css') !!}
    {!! HTML::style('css/style-desktop.css') !!}
</noscript>

出于某种原因,当加载的路由是example.com/about/something时,Laravel认为基本URL是example.com/about。我也试过了,但它仍然路由到example.com/about/images/image.jpg而不是example.com/images/image.jpg。任何建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用相对路径,并且您需要绝对路径。请参阅下面的示例,我添加的唯一内容是前置/

{!! HTML::script('https://code.jquery.com/jquery-2.1.4.min.js') !!}
{!! HTML::script('/js/skel.min.js') !!}
{!! HTML::script('/js/skel-layers.min.js') !!}
{!! HTML::script('/js/init.js') !!}
{!! HTML::script('/js/scripts.js') !!}
<noscript>
    {!! HTML::style('/css/skel.css') !!}
    {!! HTML::style('/css/style.css') !!}
    {!! HTML::style('/css/style-desktop.css') !!}
</noscript>

相对路径加载与当前路径相关的文件。例如,从http://example.com/about/us页面,您可以相对加载images/logo.png,这会导致对http://example.com/about/images/logo.png的实际请求。

绝对路径始终来自主机名:与上面相同但您加载/images/logo.png会导致http://example.com/images/logo.png