webman ile Statik Dosyaların İşlenmesi

webman, statik dosya erişimini destekler. Statik dosyalar public dizininde bulunur, örneğin http://127.0.0.8787/upload/avatar.png adresine erişmek, aslında {ana proje dizini}/public/upload/avatar.png adresine erişmek demektir.

Dikkat
/app/xx/dosyaadı ile başlayan statik dosya erişimi, uygulama eklentisinin public dizinine erişim anlamına gelir. Yani {ana proje dizini}/public/app/ altındaki dizinlere erişim desteklenmemektedir.
Daha fazla bilgi için lütfen Uygulama Eklentileri bölümüne bakın.

Statik Dosya Desteğini Kapatma

Eğer statik dosya desteğine ihtiyaç yoksa, config/static.php dosyasını açarak enable seçeneğini false olarak değiştirebilirsiniz. Kapatıldığında, tüm statik dosya erişimleri 404 dönecektir.

Statik Dosya Dizinini Değiştirme

webman, varsayılan olarak statik dosya dizini olarak public dizinini kullanır. Değiştirmek isterseniz, support/helpers.php dosyasındaki public_path() yardımcı fonksiyonunu değiştirin.

Statik Dosya Araç Yazılımı

webman, app/middleware/StaticFile.php konumunda bir statik dosya aracı yazılımı sağlar. Bazen statik dosyalar üzerinde bazı işlemler yapmamız gerekir; örneğin, statik dosyalara çapraz alan http başlıkları eklemek ve nokta (.) ile başlayan dosyaların erişimini yasaklamak için bu aracı yazılımı kullanabilirsiniz.

app/middleware/StaticFile.php içeriği aşağıdaki gibidir:

<?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
    {
        // Nokta ile başlayan gizli dosyaların erişimini yasakla
        if (strpos($request->path(), '/.') !== false) {
            return response('<h1>403 yasaklı</h1>', 403);
        }
        /** @var Response $response */
        $response = $next($request);
        // Çapraz alan http başlıkları ekle
        /*$response->withHeaders([
            'Access-Control-Allow-Origin'      => '*',
            'Access-Control-Allow-Credentials' => 'true',
        ]);*/
        return $response;
    }
}

Bu aracı yazılıma ihtiyaç duyuyorsanız, config/static.php dosyasındaki middleware seçeneğinde etkinleştirmeniz gerekir.