Laravel 5没有找到css文件

dav*_*e85 47 php .htaccess laravel laravel-5

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

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

<link href="/css/app.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

我的.htaccess文件有这一行:

RewriteBase /laravel-site/laravel-5-app/public/
Run Code Online (Sandbox Code Playgroud)

在config文件夹中,我的app.php文件包含:

'url' => 'http://localhost:8888/laravel-site/laravel-5-app/public/',
Run Code Online (Sandbox Code Playgroud)

但是当我打开这个页面时: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 /我得到了正确的欢迎页面.

K.T*_*ess 85

使用此添加资产一样css,javascript,images...成片文件.

对于CSS,

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

要么

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

对于JS,

<script type="text/javascript" src="{{ asset('js/custom.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)

要么

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

对于图像,

{{ asset('img/photo.jpg'); }}
Run Code Online (Sandbox Code Playgroud)

这是DOC

或者,如果您拉出了illuminate/html作为laravel 4.2中默认的作曲家包,那么您可以使用如下所示,在laravel 5.中您必须手动拉包.

{{ HTML::style('css/style.css') }}
Run Code Online (Sandbox Code Playgroud)

这是一个例子.

  • @ davelowe85因为您需要使用`php artisan serve`或Homestead进行开发,并在生产中使用正确的服务器配置.`public`应该**永远不会出现在您的URL中(如果是,您的应用程序可能容易受到攻击)并且Laravel通常在域名的根目录下运行,因此`/ css/app.css`是一个合理设置的完美默认值. (3认同)
  • 我真正想知道的是,为什么这个<link href ="/ css/app.css"rel ="stylesheet">不起作用? (2认同)

Thi*_*ena 11

在根路径中创建一个.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>
Run Code Online (Sandbox Code Playgroud)

在公共目录中创建一个.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>
Run Code Online (Sandbox Code Playgroud)

如果您对public / index.php文件进行了任何更改,请使用正确的路径更正它们,然后您的网站就会上线。

这将解决什么?

  • laravel项目的托管问题。
  • CSS在laravel上不起作用。
  • Laravel网站无法正常工作。
  • laravel网站负载与domain / public / index.php
  • laravel项目无法正确重定向


小智 8

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

<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" >
Run Code Online (Sandbox Code Playgroud)
<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >
Run Code Online (Sandbox Code Playgroud)
{!! Html::style( asset('css/app.css')) !!}
Run Code Online (Sandbox Code Playgroud)


小智 6

Stop artisan serve

并尝试使用

php -S localhost:8000 -t public
Run Code Online (Sandbox Code Playgroud)


Thu*_*nLe 5

其作品.对于CSS:

<link href="css/app.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

尝试:

 <link href="public/css/app.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)