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