webman处理静态文件

webman soporta el acceso a archivos estáticos, los archivos estáticos se colocan en el directorio public, por ejemplo, acceder a http://127.0.0.8787/upload/avatar.png en realidad está accediendo a {directorio principal}/public/upload/avatar.png.

Nota
El acceso a archivos estáticos que comienzan con /app/xx/nombre_de_archivo en realidad accede al directorio public del complemento de la aplicación, es decir, no se admite el acceso a directorios bajo {directorio principal}/public/app/.
Para más información, consulta complementos de la aplicación

Cerrar el soporte para archivos estáticos

Si no necesitas soporte para archivos estáticos, abre config/static.php y cambia la opción enable a false. Una vez desactivado, todos los accesos a archivos estáticos devolverán un 404.

Cambiar el directorio de archivos estáticos

webman usa por defecto el directorio public como directorio de archivos estáticos. Si necesitas modificarlo, cambia la función asistente public_path() en support/helpers.php.

Middleware de archivos estáticos

webman incluye un middleware de archivos estáticos, ubicado en app/middleware/StaticFile.php. A veces necesitamos realizar algunas operaciones en los archivos estáticos, por ejemplo, agregar encabezados http de CORS o prohibir el acceso a archivos que comienzan con un punto (.) utilizando este middleware.

El contenido de app/middleware/StaticFile.php es similar al siguiente:

<?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
    {
        // Prohibir el acceso a archivos ocultos que comienzan con .
        if (strpos($request->path(), '/.') !== false) {
            return response('<h1>403 forbidden</h1>', 403);
        }
        /** @var Response $response */
        $response = $next($request);
        // Agregar encabezados http de CORS
        /*$response->withHeaders([
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Credentials' => 'true',
        ]);*/
        return $response;
    }
}

Si necesitas este middleware, debes habilitarlo en la opción middleware de config/static.php.