我在子文件夹中安装了laravel 5.4,e.x。 example.com/laravel。
我跟着ka_lin的anwser看起来一切正常,除了他们没有显示的资产。但是,如果我在网址中添加“public”,例如example.com/laravel/public/(asset uri ...),我可以请求资产。我想知道无论如何都要解决这个问题。
.htaccess驻留在项目根文件夹中:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
答案 0 :(得分:0)
我终于找到了原因!!
因为我将我的文件夹命名为“img”而不是“images”,所以我必须更改
*right
到
`templates`
如果我有其他资源如字体,我需要将文件夹名称添加到括号中并修改
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
包含扩展程序。
我对apache配置了解不多,但它对我有用。希望它能帮助其他人。