【问题标题】:bootstrap styling doesn't work in some views in Laravel 5.2引导样式在 Laravel 5.2 的某些视图中不起作用
【发布时间】:2016-04-29 16:11:24
【问题描述】:

我是 Laravel 5.2 的初学者,我做了一个简单的个人博客和这里的意见文件夹

在 home.blade.php 中,我扩展了“layouts.master”,它使用引导程序并且效果很好。 现在我做了一条新的路线来展示特定的博客:

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

当我转到http://localhost:8000/post/1 时,它工作得很好,但是当我扩展 layouts.master 引导程序并且我的自定义 css 不起作用时出现问题! 它可以在 home.blade.php 和 pages/about.blade.php 中正常工作,但是当我尝试创建任何新路由到视图并扩展 layouts.master 时,它会扩展,但引导程序和自定义 css 不起作用。

知道这是为什么吗? 注意:我的 css 和 bootstrap 在 public 文件夹中。

【问题讨论】:

  • 你能告诉我们你是如何在你的主布局中包含引导程序的吗?
  • 我敢打赌这是一个相对 URL 还是绝对 URL。看看这个:stackoverflow.com/questions/33377408/…
  • maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/…" rel="stylesheet" type="text/css"> 以下是我包含 css 的方式

标签: php twitter-bootstrap laravel laravel-5.2


【解决方案1】:

你一定用过

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

在您的主刀片布局模板中,为什么会遇到这个问题

使用

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

这将解决问题。

在css文件路径前加上一个斜杠/,表示你项目的公共目录。

【讨论】:

    【解决方案2】:

    为了让生活变得超级简单,请使用 Laravel 的 assets() 助手:

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

    是的,它提供的内容与将其简单地引用为“/css/...”完全相同,但我发现这是一种很好的做法,尤其是当事情变得更高级时。

    【讨论】:

      【解决方案3】:

      @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 遍历文件。 public 在 URL 结构中被省略,但这是所有 HTTP 请求解析到的地方。

      更新

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

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

      asset 助手将直接从 /public 解析

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

      【讨论】:

      • 补充一点,看起来正在使用的字体缺少协议,因此它们将尝试解析为 localhost:8000/post/1/maxcdn.bootstrapcdn.com/。 ...它们需要在前面加上 http:// 或 https://。
      • 太棒了!我将 / 添加到 css 和 js 路径,它终于正常工作了!非常感谢哥们:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 2011-03-16
      相关资源
      最近更新 更多