webman Xử lý tập tin tĩnh
webman hỗ trợ truy cập tập tin tĩnh, tất cả tập tin tĩnh đều được đặt trong thư mục public. Ví dụ, truy cập http://127.0.0.8787/upload/avatar.png thực ra là truy cập {thư mục dự án chính}/public/upload/avatar.png.
Lưu ý
Truy cập tập tin tĩnh bắt đầu bằng/app/xx/tên_tập_tinthực ra là truy cập thư mụcpubliccủa plugin ứng dụng. Nghĩa là không hỗ trợ truy cập các thư mục tại{thư mục dự án chính}/public/app/.
Để biết thêm thông tin, vui lòng tham khảo Plugin ứng dụng.
Tắt hỗ trợ tập tin tĩnh
Nếu không cần hỗ trợ tập tin tĩnh, hãy mở tệp config/static.php và đổi tùy chọn enable thành false. Sau khi tắt, mọi yêu cầu truy cập tập tin tĩnh sẽ trả về lỗi 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 chỉnh sửa 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í là app/middleware/StaticFile.php.
Đôi khi chúng ta cần xử lý tập tin tĩnh, ví dụ thêm tiêu đề HTTP chéo nguồn hoặc cấm truy cập các tập tin 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 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 chéo nguồn
/*$response->withHeaders([
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Credentials' => 'true',
]);*/
return $response;
}
}
Nếu cần sử dụng middleware này, hãy kích hoạt trong tùy chọn middleware ở config/static.php.