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 eklentisininpublicdizinine 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.