Laravel对我的图片,css和JavaScript文件抛出了一个404错误,这些文件位于/mysite/public
中。我已经将/mysite/public
设置为网站的根文件夹,我所有的资产都位于那里。
我做了一个谷歌搜索这个错误,但他们都给了同样的解决方案,即{{asset('css/style.css')}}
。我已经有我的链接设置这样,所以我不认为这是问题。
我认为这个错误与我的重写规则有关,但我就是不知道它是什么。
我的网站的.htaccess文件是:
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.my-site.com/$1 [R,L]
</IfModule>
如果我删除第一个RewriteRule,我的css加载正常,但主页以外的页面将开始抛出404错误。如果我把它放回去,其他页面工作正常,但css,js和图像文件停止加载。
2条答案
按热度按时间j2cgzkjk1#
你的第一条规则基本上是说“不管URL是什么,都要加载index.php”。这意味着它永远不会加载你的资产,也就是物理文件夹,因为它只会加载index.php。例如,如果你试图加载css/image.png,它只会加载index.php。
如果你删除它,你的实际文件夹将加载,但其他URL不会重新写入index.php,这就是为什么它会中断。
你应该使用Laravel提供给你的.htaccess。这应该是你的.htaccess文件在public/文件夹中(根据Laravel Github仓库)
public/.htaccess
如果public文件夹不是服务器上的根目录,则还需要在其他.htaccess(位于public文件夹上方)中包含此文件夹
/.htaccess
vof42yt12#
添加此规则以防止资产被路由到路由器