webman traitement des fichiers statiques
webman prend en charge l'accès aux fichiers statiques, tous les fichiers statiques sont placés dans le répertoire public
. Par exemple, accéder à http://127.0.0.8787/upload/avatar.png
correspond en réalité à l'accès à {répertoire principal du projet}/public/upload/avatar.png
.
Attention
L'accès aux fichiers statiques commençant par/app/xx/nom_de_fichier
accède en réalité au répertoirepublic
du plug-in de l'application, c'est-à-dire que l'accès aux répertoires sous{répertoire principal du projet}/public/app/
n'est pas supporté.
Pour plus d'informations, veuillez consulter plug-in d'application
Désactiver la prise en charge des fichiers statiques
Si la prise en charge des fichiers statiques n'est pas nécessaire, ouvrez config/static.php
et changez l'option enable
en false. Après désactivation, tous les accès aux fichiers statiques renverront une erreur 404.
Modifier le répertoire des fichiers statiques
webman utilise par défaut le répertoire public comme répertoire des fichiers statiques. Pour le modifier, veuillez changer la fonction auxiliaire public_path()
dans support/helpers.php
.
Middleware de fichiers statiques
webman est livré avec un middleware pour les fichiers statiques, qui se trouve à app/middleware/StaticFile.php
. Parfois, nous devons effectuer certaines opérations sur les fichiers statiques, par exemple, ajouter des en-têtes HTTP de contrôle d'accès, ou interdire l'accès aux fichiers commençant par un point (.
), ce middleware peut être utilisé à cet effet.
Le contenu de app/middleware/StaticFile.php
est similaire à ce qui suit :
<?php
namespace support\middleware;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
class StaticFile implements MiddlewareInterface
{
public function process(Request $request, callable $next) : Response
{
// Interdire l'accès aux fichiers cachés commençant par un point
if (strpos($request->path(), '/.') !== false) {
return response('<h1>403 forbidden</h1>', 403);
}
/** @var Response $response */
$response = $next($request);
// Ajouter des en-têtes HTTP de contrôle d'accès
/*$response->withHeaders([
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => 'true',
]);*/
return $response;
}
}
Si vous avez besoin de ce middleware, vous devez l'activer dans l'option middleware
du fichier config/static.php
.