【问题标题】:Laravel 5 not finding css filesLaravel 5找不到css文件
【发布时间】:2015-03-28 15:59:13
【问题描述】:

我刚刚在 MAMP 上安装了一个 Laravel 5 项目,但我的页面没有找到 css 文件。

这是我的 app.blade.php 文件中我的 css 的链接:

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

我的 .htaccess 文件有这一行:

RewriteBase /laravel-site/laravel-5-app/public/

在 config 文件夹中,我的 app.php 文件包含以下内容:

'url' => 'http://localhost:8888/laravel-site/laravel-5-app/public/',

但是当我打开这个页面:http://localhost:8888/laravel-site/laravel-5-app/public/auth/login并检查开发者工具时,它正在这个位置寻找css文件:http://localhost:8888/css/app.css

顺便说一句,如果我访问这个网址:http://localhost:8888/laravel-site/laravel-5-app/public/,我会得到正确的欢迎页面。

【问题讨论】:

  • 链接可以试试&lt;link href="{{ public_path() }}/css/app.css" rel="stylesheet"&gt;
  • 现在它正在这里寻找 css 文件:/Applications/MAMP/htdocs/laravel-site/laravel-5-app/public/css/app.css(我在哪里)但是它仍然没有在页面上显示它,但是如果我将该链接复制到地址栏,它会找到 css 文件。
  • 像这样修改 app.blade.php 的 css/app.css 链接。 &lt;link href="{{ asset('css/app.css') }}" rel="stylesheet"&gt;

标签: php .htaccess laravel laravel-5


【解决方案1】:

使用它可以将cssjavascriptimages.. 等资产添加到刀片文件中。

对于 CSS,

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

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

对于 JS,

<script type="text/javascript" src="{{ asset('js/custom.js') }}"></script>

 <script type="text/javascript" src="{{ URL::asset('js/custom.js') }}"></script>

图片,

{{ asset('img/photo.jpg'); }}

这里是DOC

或者,如果您拉取了 laravel 4.2 中默认提供的作曲家包 illuminate/html,那么您可以像下面这样使用,在 laravel 5 中。您必须手动拉取包。 p>

{{ HTML::style('css/style.css') }}

这是Example

【讨论】:

  • @davelowe85 因为您需要使用php artisan serve 或 Homestead 进行开发,并在生产中使用适当的服务器配置。 public 应该从不出现在你的 URL 中(如果是,你的应用程序可能容易受到攻击)并且 Laravel 通常在域名的根目录下运行,所以 /css/app.css 非常好合理设置的默认设置。
  • 这是一种方法,但你应该真正考虑使用 elixir
  • blade这个词需要强调一下
  • 这些东西在我的生产服务器(共享主机)上不起作用!知道为什么吗?
  • Laravel mix() 的解决方案是什么?因为 url() 正确地为我工作,但 mix 没有找到 /public 文件夹...
【解决方案2】:

在根路径下创建一个 .htaccess 文件

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/public/ 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f



RewriteRule ^(.*)$ /public/$1 
#RewriteRule ^ index.php [L]
RewriteRule ^(/)?$ public/index.php [L] 
</IfModule>

在公共目录中创建一个 .htaccess 文件

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

如果您在 public/index.php 文件中进行了任何更改,并使用正确的路径更正它们,那么您的网站将会上线。

这能解决什么问题?

  • laravel 项目托管问题。
  • Css 在 laravel 上不起作用。
  • Laravel 网站无法正常工作。
  • laravel 使用 domain/public/index.php 加载站点
  • laravel 项目没有正确重定向

【讨论】:

    【解决方案3】:

    Stop artisan serve

    并尝试使用

    php -S localhost:8000 -t public
    

    【讨论】:

    • 这解决了 windows 目录和权限的问题,在 linux 上也很好用。谢谢
    • 你能解释一下这个命令吗
    【解决方案4】:

    您可以使用以下选项之一:

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

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

    {!! Html::style( asset('css/app.css')) !!}
    

    【讨论】:

      【解决方案5】:

      这是有效的。 对于 CSS:

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

      尝试:

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

      【讨论】:

        【解决方案6】:

        这里是解决办法

          {!! Html::style('css/select2.min.css') !!}
          {!! Html::script('js/select2.min.js') !!}
        

        【讨论】:

          【解决方案7】:

          这对我有用

          如果您将 .htaccess 文件从公共目录迁移到项目文件夹并将 server.php 更改为项目文件夹中的 index.php,那么这应该适合您。

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

          谢谢

          【讨论】:

            【解决方案8】:

            直到现在我也遇到了同样的问题。

            /css/app.css 之前删除/,以便它的css.app.css 为我工作。

            【讨论】:

              【解决方案9】:

              快速应用简单的正则表达式。

              search : href="(.+?)"
              replace : href="{{ asset('$1') }}"
              

              search : src="(.+?)"
              replace : src="{{ asset('$1') }}"
              

              【讨论】:

              • 请在您的答案中添加一些解释,以便其他人可以从中学习 - 应该在哪里应用以及为什么?
              【解决方案10】:

              我用过:

              "{{asset('css/custom.css')}}"
              "{{asset('css/app.css') }}"
              

              第一个是我自己的文件,第二个是 laravel 自带的。我使用的是第 5 版。

              http://spanibox.com/css/app.css 有效,但 http://spanibox.com/css/custom.css 才不是。我觉得这很奇怪。

              【讨论】:

                【解决方案11】:

                如果您使用的是laravel 5 或 6:

                1. 在 Public 文件夹中创建 .css、.js、images... 文件夹

                1. 然后在您的刀片文件中,您可以使用以下代码显示图像:

                <link rel="stylesheet" href="/css/bootstrap.min.css">
                <link src="/images/test.png">
                <!-- / is important and dont write public folder-->

                【讨论】:

                  【解决方案12】:

                  我的看法是:

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

                  是路由到您的 css 文件的最佳方法。

                  URL::to() 也适用于 js

                  【讨论】:

                    【解决方案13】:

                    Laravel 6.0.2 版

                    我也遇到了同样的问题。我用过

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

                    在将 CSS 文件夹从文件夹资源移动到公共文件夹后,它可以工作

                    【讨论】:

                      【解决方案14】:

                      这对我有用:
                      如果是 css 文件,请点击

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

                      如果是图片点击

                      <link href="{{ asset('css/img/logo.png') }}" rel="stylesheet" type="text/css" >
                      

                      【讨论】:

                      • 在对已有 17 个已有答案的五年前的问题添加答案时,重要的是要包括解释并指出您的答案所针对的问题的新方面。
                      【解决方案15】:

                      &lt;link rel="stylesheet" href="/css/bootstrap.min.css"&gt;如果你使用 laravel 5 或 6,你应该创建文件夹 css 并调用它

                      对我有用

                      【讨论】:

                      • 请在您的答案中添加一些进一步的解释,以便其他人可以从中学习
                      • 是的,在您的公共文件夹中创建另一个文件夹(CSS,JS,...)并使用它,我们应该在文件的链接之前添加“/”但没有公共它是 laravel 5 或6 祝你好运
                      • 请通过编辑将所有解释添加到答案
                      【解决方案16】:

                      您可以简单地公开创建资产并添加更多路径并在您的头部 html 中调用以下代码

                      【讨论】:

                        【解决方案17】:

                        如果你在 ubuntu 上,你可以试试这些命令:

                        sudo apt install npm
                        
                        npm install && npm run dev
                        

                        【讨论】:

                        • 请在您的答案中添加一些解释,以便其他人可以从中学习 - 为什么要解决给定的问题?
                        【解决方案18】:

                        你可以在你的css链接前面放一个反斜杠

                        【讨论】:

                        • 请在您的答案中添加一些解释,以便其他人可以从中学习。 URL 中的反斜杠听起来很奇怪
                        猜你喜欢
                        • 2015-05-07
                        • 1970-01-01
                        • 1970-01-01
                        • 2017-09-09
                        • 2014-08-04
                        • 2015-07-17
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多