我正在关注此article。
我正在使用laravel 5.6
。
我将.htaccess
文件从public
移到了root
,并将server.php
重命名为index.php
。
.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]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
但是css
和js
文件未加载。
答案 0 :(得分:0)
还有另一种方法,您只需要在根目录中创建.htaccess
文件并将其放入其中即可:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
之后,您可以将css , js
文件保存在公用文件夹中,而无需public
即可直接调用它们
答案 1 :(得分:0)
由于现在是从应用程序的根目录而不是应用程序/公共目录提供服务,因此该应用程序正在其应用程序的根目录中查找css和js文件。
通过在CSS和JS文件之前添加{{ asset('public') }}
,可以轻松解决此问题。
例如
<link type="text/css" rel="stylesheet" href="{{ asset('public') }}/css/style.min.css"/>
<script src="{{ asset('public') }}/js/jquery.min.js"></script>