引导样式在Laravel 5.2的某些视图中不起作用

时间:2016-04-29 16:11:24

标签: php twitter-bootstrap laravel laravel-5.2

我是Laravel 5.2的初学者,我制作了一个简单的个人博客和这里的观点文件夹

Views Folder

在home.blade.php我扩展' layouts.master'它使用bootstrap,效果很好。 现在我开辟了一条新的路线来展示特定的博客:

Route::group(['prefix'=>'post'], function(){
    Route::get('{id}', function(){
        return view('blog');
    });
});

当我转到http://localhost:8000/post/1时,它的效果很好,但是当我扩展layouts.master bootstrap和我的自定义css时问题不起作用! 它适用于home.blade.php并正确地在pages / about.blade.php中工作,但是当我尝试为视图创建任何新路由并扩展layouts.master时它会扩展但bootstrap和自定义css不起作用。 blog view

知道为什么会这样吗? 注意:我的css和bootstrap在公共文件夹中。

3 个答案:

答案 0 :(得分:9)

@ThomasKim绝对正确。引导文件的路径是相对的。因此,当您在localhost:8000时,它可以正确地遍历到css/bootstrap.min.css

但是,当您在/post/1时,css文件的URL请求将更改为:

localhost:8000/post/1/css/bootstrap.min.css

我们知道这是不正确的。要解决此问题,请通过添加/

来使用绝对路径
<link href="/css/bootstrap.min.css" rel="stylesheet"/>

这将确保它始终尝试从public / css / bootstrap.min.css遍历文件。 URL结构中省略了public,但这是所有HTTP请求解析的地方。

<强>更新

实际上,最好使用Laravel的assetsecure_asset函数来解析这些资产:

<link href="{{ asset('css/bootstrap.min/css') }} rel="stylesheet"/>

asset帮助程序将直接从/public

解析

请注意,asset将使用页面请求的schema来解析依赖关系,而secure_asset将强制依赖https,无论模式是什么请求是。

答案 1 :(得分:6)

为了让生活更加轻松,请使用Laravel的asset()帮助器:

<link href="{{ asset('/css/stylesheet.css') }}" rel="stylesheet"/>

是的,它提供了与引用它完全相同的东西,简单地说是“/ css / ...”但我发现它是一种很好的做法,特别是当事情在以后的某些方面变得更加先进时。

答案 2 :(得分:3)

您必须使用

<link rel="stylesheet" type="text/css" href="css/app.css">
在您的主刀片布局模板中

,这就是为什么要面对这个问题

使用

<link rel="stylesheet" type="text/css" href="/css/app.css">

这将解决问题。

只需在css文件路径前附加一个正斜杠/,它指示项目的公共目录。