webman xử lý tệp tin tĩnh

webman hỗ trợ truy cập tệp tin tĩnh, tất cả các tệp tin tĩnh đều được đặt trong thư mục public, ví dụ như truy cập http://127.0.0.8787/upload/avatar.png thực chất là truy cập vào {主项目目录}/public/upload/avatar.png .

Lưu ý
Truy cập tệp tin tĩnh bắt đầu bằng /app/xx/文件名 thực chất là truy cập vào thư mục public của ứng dụng plugin, nghĩa là không hỗ trợ truy cập vào thư mục dưới {主项目目录}/public/app/ .
Xem thêm tại ứng dụng plugin

Tắt hỗ trợ tệp tin tĩnh

Nếu không cần hỗ trợ tệp tin tĩnh, mở config/static.php và thay đổi tùy chọn enable thành false. Khi tắt, tất cả truy cập tệp tin tĩnh sẽ trả về 404.

Thay đổi thư mục tệp tin tĩnh

webman mặc định sử dụng thư mục public làm thư mục tệp tin tĩnh. Nếu cần thay đổi, hãy sửa đổi hàm trợ giúp public_path() trong support/helpers.php .

Middleware tệp tin tĩnh

webman đi kèm với một middleware tệp tin tĩnh, vị trí app/middleware/StaticFile.php . Đôi khi chúng ta cần thực hiện một số thao tác trên tệp tin tĩnh, ví dụ như thêm tiêu đề http cross-origin cho tệp tin tĩnh, cấm truy cập vào các tệp bắt đầu bằng dấu chấm (.) có thể sử dụng middleware này.

Nội dung của app/middleware/StaticFile.php tương tự như sau:

<?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
    {
        // Cấm truy cập vào các tệp tin ẩn bắt đầu bằng dấu chấm
        if (strpos($request->path(), '/.') !== false) {
            return response('<h1>403 forbidden</h1>', 403);
        }
        /** @var Response $response */
        $response = $next($request);
        // Thêm tiêu đề http cross-origin
        /*$response->withHeaders([
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Credentials' => 'true',
        ]);*/
        return $response;
    }
}

Nếu cần sử dụng middleware này, cần mở tùy chọn middleware trong config/static.php .