【问题标题】:Laravel public CSS stylesheetLaravel 公共 CSS 样式表
【发布时间】:2019-04-09 12:56:43
【问题描述】:

我正在使用此代码来包含我的公共样式表:

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel</title>
        <link rel="stylesheet" href="{{ asset('css/c_bootstrap.css') }}">
        <link rel="stylesheet" href="{{ asset('css/style_x.css') }}"  />
        <link rel="stylesheet" href="{{ asset('css/sb-admin.css') }}" />
    </head>
    <body>
        <!-- navbar -->
        @include ('layout.navbar')

        <div class="container">
            <div class="content">
            	@yield('content')
            </div>
        </div>
    </body>
</html>

在查看页面源码中:

当我点击它时,我得到了这个:

所以它看起来确实有效。但是,这只是 Laravel 错误页面中的错误 CSS:

那么我在这里做错了什么?

我的文件夹:

|- public
|-|--- assets
|-|---|--- css
|-|---|---|--- c_bootstrap.css
|-|---|---|--- s.css
|-|---|---|--- sb-admin.css

【问题讨论】:

  • 你的assets文件夹拼写错误。
  • 它就在这里,编辑@bonish koirala
  • 你对其他文件也试过这个asset('assets/css/c_bootstrap.css')吗?
  • 不起作用,路由器不允许访问文件,因为它以某种方式试图解析 url。我对 laravel 很陌生,我试图将 css 直接公开而不是编译它。
  • 你能以html格式查看你的c_bootstrap.css页面吗?

标签: html css laravel laravel-blade


【解决方案1】:

为你的 CSS 试试这个

<link rel="stylesheet" href="{{ asset('assets/css/c_bootstrap.css') }}"> <link rel="stylesheet" href="{{ asset('assets/css/style_x.css') }}" /> <link rel="stylesheet" href="{{ asset('assets/css/sb-admin.css') }}" />

【讨论】:

    【解决方案2】:

    问题出在 .htaccess 文件中

    原文:

    Options +SymLinksIfOwnerMatch
    
    RewriteEngine On
    RewriteRule ^ index.php [L]
    

    在我编辑之后:

    Options +SymLinksIfOwnerMatch
    
    RewriteEngine On
    #RewriteRule ^ index.php [L]
    RewriteRule ^(.*)$ public/$1 [L]
    

    我的刀片布局必须包含资产:

        <link href="{{ asset('assets/css/c_bootstrap.css') }}" media="all" rel="stylesheet" type="text/css" />
        <link href="{{ asset('assets/css/style_x.css') }}" media="all" rel="stylesheet" type="text/css" />
        <link href="{{ asset('assets/css/sb-admin.css') }}" media="all" rel="stylesheet" type="text/css" />
    

    额外的资产功能:

    大多数在线文档使用资产函数而不在路径中包含“资产”,我是 Laravel 的初学者,但我假设它在路由中调用资产函数: Illuminate/Routing/UrlGenerator.php#L202 我看不到它在网址中附加“资产”的位置,所以也许他们改变了功能?我不知道

    【讨论】:

    • 如果这是您的解决方案,则表明 DocumentRoot 为 Apache 配置错误。 Laravel 项目的文档根目录应该是public/ 文件夹,否则你可能会无意中将敏感的配置文件、日志、上传文件等暴露在互联网上。
    • 它不是公开的,因为它在某个文件夹中,因为项目位于子域中。/etc 中的 apache 配置文件是正确的,但是 .htaccess 配置错误..
    【解决方案3】:

    将您的资产放在公共目录中,并使用以下内容将 css 集成到 laravel 中:

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

    <link rel="stylesheet" type="text/css" href="{{ URL::to('css/style.css') }}">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 2018-08-29
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多