webman স্ট্যাটিক ফাইল পরিচালনা

webman স্ট্যাটিক ফাইল অ্যাক্সেস সমর্থন করে, স্ট্যাটিক ফাইলগুলো public ডিরেক্টরির আওতায় থাকে, যেমন http://127.0.0.8787/upload/avatar.png অ্যাক্সেস করার মাধ্যমে প্রকৃতপক্ষে 主项目目录/public/upload/avatar.png তে অ্যাক্সেস করা হচ্ছে।

দ্রষ্টব্য
/app/xx/ফাইল_নাম দিয়ে শুরু হওয়া স্ট্যাটিক ফাইল অ্যাক্সেস আসলে অ্যাপ্লিকেশন প্লাগইনের public ডিরেক্টরিকে অ্যাক্সেস করে, অর্থাৎ {主项目目录}/public/app/ এর অধীনে ডিরেক্টরি অ্যাক্সেস সমর্থিত নয়।
আরও তথ্যের জন্য অ্যাপ্লিকেশন প্লাগইন দেখে নিন।

স্ট্যাটিক ফাইল সমর্থন বন্ধ করা

যদি স্ট্যাটিক ফাইল সমর্থনের প্রয়োজন না হয় তবে config/static.php খুলে enable বিকল্পটি false এ পরিবর্তন করুন। বন্ধ করার পরে সব স্ট্যাটিক ফাইল অ্যাক্সেস 404 ফেরত দিবে।

স্ট্যাটিক ফাইল ডিরেক্টরি পরিবর্তন

webman ডিফল্টভাবে স্ট্যাটিক ফাইল ডিরেক্টরি হিসেবে public ডিরেক্টরি ব্যবহার করে। এটি পরিবর্তন করতে হলে support/helpers.php এর মধ্যে public_path() সহায়িকা ফাংশনটি পরিবর্তন করুন।

স্ট্যাটিক ফাইল মধ্যস্থতার

webman একটি স্ট্যাটিক ফাইল মিডলওয়্যার অন্তর্ভুক্ত করে, অবস্থান app/middleware/StaticFile.php
কখনও কখনও আমাদের স্ট্যাটিক ফাইলগুলোর উপর কিছু প্রক্রিয়া করতে হয়, যেমন স্ট্যাটিক ফাইলের ক্রস-অরিজিন http হেডার যুক্ত করা, পয়েন্ট(.) দিয়ে শুরু হওয়া ফাইল অ্যাক্সেস নিষিদ্ধ করতে এই মিডলওয়্যারটি ব্যবহার করা যায়।

app/middleware/StaticFile.php এর বিষয়বস্তু নিম্নরূপ হতে পারে:

<?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
    {
        // . দিয়ে শুরু হওয়া লুকানো ফাইল অ্যাক্সেস নিষিদ্ধ
        if (strpos($request->path(), '/.') !== false) {
            return response('<h1>403 forbidden</h1>', 403);
        }
        /** @var Response $response */
        $response = $next($request);
        // ক্রস-অরিজিন http হেডার যুক্ত করুন
        /*$response->withHeaders([
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Credentials' => 'true',
        ]);*/
        return $response;
    }
}

যদি এই মিডলওয়্যারটির প্রয়োজন হয় তবে config/static.php এর মধ্যে middleware বিকল্পটিতে এটি সক্রিয় করতে হবে।