今天我试着发布一个用Laravel开发的网站。当我在服务器上发送所有文件时,我意识到样式没有被应用。Css文件正在被加载,因为我进入控制台:
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://xxx.xx/build/css/app-e3022e1832.css"
我认为这就是问题所在。看看app-e3022e1832.css
的标头,特别是Content-Type
:
HTTP/1.1 200 OK
Date: Thu, 08 Sep 2016 14:27:29 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: IdeaWebServer/v0.80
Content-Encoding: gzip
当我将相同的.css文件放在外部服务器上时,该文件获得Content-Type: text/css
并且一切正常工作。同样的事情发生当我删除所有的Laravel文件,比我的css文件得到正常的Content-Type: text/css
和样式被正确应用。
这给了我们一个建议,Laravel正在改变.css
文件的Content-Type
,但我在另一个项目中使用Laravel,一切都很好。有什么问题吗?
问题不在于Laravel,而在于.htaccess
文件。当我上传文件到服务器时,我意识到我需要php7。我的主机提供商允许在htaccess文件中选择php版本。我在。htaccess的顶部写了:
use php7
但这是错误的。我应该写:
:Location /*.php
Use php7
:Location
这可能是非常自定义的解决方案和非常特殊的问题,但如果有人有类似的问题,你可以确保你的php版本和.htaccess
文件的一切都是好的