Laravel-使用Web服务器而不是PHP处理静态文件下载


Laravel - Handle static file download using Web Server instead of PHP

似乎

Laravel可以满足所有请求,包括简单的静态文件下载。

因此,在可能有数十个资产的简单网页请求中,每个请求将启动一个 php 进程。

人们在选择nginx而不是apache时讨论的主要优势之一是在提供大量静态文件时具有更高的性能,那么在使用Laravel时,这些静态文件是否作为动态php文件加载?

让我们看一下 Laravel 附带的默认.htaccess文件。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

重要的部分是两个RewriteCond。如您所见,请求是文件还是目录,它不会重写为 index.php。因此,如果您请求静态文件,您不必担心,Laravel不会引导。

关于404错误
它显示了Laravel错误页面,因为如果找不到该文件,RewriteCondition将允许它通过index.php