Laravel 5找不到css文件
Posted
技术标签:
【中文标题】Laravel 5找不到css文件【英文标题】:Laravel 5 not finding css files 【发布时间】: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/,我会得到正确的欢迎页面。
【问题讨论】:
链接可以试试<link href=" public_path() /css/app.css" rel="stylesheet">
。
现在它正在这里寻找 css 文件:/Applications/MAMP/htdocs/laravel-site/laravel-5-app/public/css/app.css(我在哪里)但是它仍然没有在页面上显示它,但是如果我将该链接复制到地址栏,它会找到 css 文件。
像这样修改 app.blade.php 的 css/app.css 链接。 <link href=" asset('css/app.css') " rel="stylesheet">
【参考方案1】:
使用它可以将css
、javascript
、images
.. 等资产添加到刀片文件中。
对于 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:
-
在 Public 文件夹中创建 .css、.js、images... 文件夹
-
然后在您的刀片文件中,您可以使用以下代码显示图像:
<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】:<link rel="stylesheet" href="/css/bootstrap.min.css">
如果你使用 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 中的反斜杠听起来很奇怪以上是关于Laravel 5找不到css文件的主要内容,如果未能解决你的问题,请参考以下文章