根目录中的laravel .htaccess

时间:2019-05-30 10:46:57

标签: php .htaccess laravel-5

我正在关注此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]

但是cssjs文件未加载。

2 个答案:

答案 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>