Varlıklar Yapılandırması

Nette Assets için yapılandırma seçeneklerine genel bakış.

assets:
	# göreli eşleştirici yollarını çözümlemek için temel yol
	basePath: ...            # (string) varsayılan olarak %wwwDir%

	# göreli eşleştirici URL'lerini çözümlemek için temel URL
	baseUrl: ...             # (string) varsayılan olarak %baseUrl%

	# varlık sürümlemeyi global olarak etkinleştir?
	versioning: ...           # (bool) varsayılan olarak true

	# varlık eşleştiricilerini tanımlar
	mapping: ...             # (array) varsayılan olarak 'assets' yolu

basePath, eşleştiricilerdeki göreli yolları çözümlemek için varsayılan dosya sistemi dizinini ayarlar. Varsayılan olarak, web dizinini (%wwwDir%) kullanır.

baseUrl, eşleştiricilerdeki göreli URL'leri çözümlemek için varsayılan URL önekini ayarlar. Varsayılan olarak, kök URL'yi (%baseUrl%) kullanır.

versioning seçeneği, önbellek temizleme için varlık URL'lerine sürüm parametrelerinin eklenip eklenmeyeceğini global olarak kontrol eder. Bireysel eşleştiriciler bu ayarı geçersiz kılabilir.

Eşleştiriciler (Mappers)

Eşleştiriciler üç şekilde yapılandırılabilir: basit dize gösterimi, ayrıntılı dizi gösterimi veya bir servise referans olarak.

Bir eşleştirici tanımlamanın en basit yolu:

assets:
	mapping:
		default: assets     # %wwwDir%/assets/ için dosya sistemi eşleştiricisi oluşturur
		images: img         # %wwwDir%/img/ için dosya sistemi eşleştiricisi oluşturur
		scripts: js         # %wwwDir%/js/ için dosya sistemi eşleştiricisi oluşturur

Her eşleştirici bir FilesystemMapper oluşturur:

  • %wwwDir%/<path> içinde dosyaları arar
  • %baseUrl%/<path> gibi URL'ler oluşturur
  • Global sürümleme ayarını miras alır

Daha fazla kontrol için ayrıntılı gösterimi kullanın:

assets:
	mapping:
		images:
			# dosyaların depolandığı dizin
			path: ...                    # (string) isteğe bağlı, varsayılan olarak ''

			# oluşturulan bağlantılar için URL öneki
			url: ...                     # (string) isteğe bağlı, varsayılan olarak yol

			# bu eşleştirici için sürümlemeyi etkinleştir?
			versioning: ...              # (bool) isteğe bağlı, global ayarı miras alır

			# dosyaları ararken uzantıyı/uzantıları otomatik ekle
			extension: ...               # (string|array) isteğe bağlı, varsayılan olarak null

Yapılandırma değerlerinin nasıl çözüldüğünü anlama:

Yol Çözümlemesi
Göreli yollar basePath'ten (veya basePath ayarlanmamışsa %wwwDir%'den) çözümlenir
Mutlak yollar olduğu gibi kullanılır
URL Çözümlemesi
Göreli URL'ler baseUrl'den (veya baseUrl ayarlanmamışsa %baseUrl%'den) çözümlenir
Mutlak URL'ler (şema veya // ile) olduğu gibi kullanılır
url belirtilmezse, path değeri kullanılır
assets:
	basePath: /var/www/project/www
	baseUrl: https://example.com/assets

	mapping:
		# Göreli yol ve URL
		images:
			path: img                    # Çözümlenir: /var/www/project/www/img
			url: images                  # Çözümlenir: https://example.com/assets/images

		# Mutlak yol ve URL
		uploads:
			path: /var/shared/uploads    # Olduğu gibi kullanılır: /var/shared/uploads
			url: https://cdn.example.com # Olduğu gibi kullanılır: https://cdn.example.com

		# Yalnızca yol belirtildi
		styles:
			path: css                    # Yol: /var/www/project/www/css
										 # URL: https://example.com/assets/css

Özel Eşleştiriciler (Custom Mappers)

Özel eşleştiriciler için bir servise referans verin veya bir servis tanımlayın:

services:
	s3mapper: App\Assets\S3Mapper(%s3.bucket%)

assets:
	mapping:
		cloud: @s3mapper
		database: App\Assets\DatabaseMapper(@database.connection)

Vite Eşleştiricisi

Vite eşleştiricisi yalnızca type: vite eklemenizi gerektirir. Bu, yapılandırma seçeneklerinin tam listesidir:

assets:
	mapping:
		default:
			# eşleştirici türü (Vite için gerekli)
			type: vite                # (string) gerekli, 'vite' olmalı

			# Vite derleme çıktı dizini
			path: ...                 # (string) isteğe bağlı, varsayılan olarak ''

			# derlenmiş varlıklar için URL öneki
			url: ...                  # (string) isteğe bağlı, varsayılan olarak yol

			# Vite manifest dosyasının konumu
			manifest: ...             # (string) isteğe bağlı, varsayılan olarak <path>/.vite/manifest.json

			# Vite dev sunucusu yapılandırması
			devServer: ...            # (bool|string) isteğe bağlı, varsayılan olarak true

			# public dizin dosyaları için sürümleme
			versioning: ...           # (bool) isteğe bağlı, global ayarı miras alır

			# public dizin dosyaları için otomatik uzantı
			extension: ...            # (string|array) isteğe bağlı, varsayılan olarak null

devServer seçeneği, geliştirme sırasında varlıkların nasıl yüklendiğini kontrol eder:

  • true (varsayılan) – Mevcut ana bilgisayar ve bağlantı noktasındaki Vite geliştirme sunucusunu otomatik olarak algılar. Geliştirme sunucusu çalışıyorsa ve uygulamanız hata ayıklama modundaysa, varlıklar sıcak modül değiştirme (HMR) desteğiyle oradan yüklenir. Geliştirme sunucusu çalışmıyorsa, varlıklar derlenmiş dosyalardan public dizininden yüklenir.
  • false – Geliştirme sunucusu entegrasyonunu tamamen devre dışı bırakır. Varlıklar her zaman derlenmiş dosyalardan yüklenir.
  • Özel URL (örneğin, https://localhost:5173) – Geliştirme sunucusu URL'sini protokol ve bağlantı noktası dahil manuel olarak belirtin. Geliştirme sunucusu farklı bir ana bilgisayarda veya bağlantı noktasında çalıştığında kullanışlıdır.

versioning ve extension seçenekleri yalnızca Vite tarafından işlenmeyen Vite'ın public dizinindeki dosyalar için geçerlidir.

Manuel Yapılandırma

Nette DI kullanmadığınızda, eşleştiricileri manuel olarak yapılandırın:

use Nette\Assets\Registry;
use Nette\Assets\FilesystemMapper;
use Nette\Assets\ViteMapper;

$registry = new Registry;

// Dosya sistemi eşleştiricisi ekle
$registry->addMapper('images', new FilesystemMapper(
	baseUrl: 'https://example.com/img',
	basePath: __DIR__ . '/www/img',
	extensions: ['webp', 'jpg', 'png'],
	versioning: true,
));

// Vite eşleştiricisi ekle
$registry->addMapper('app', new ViteMapper(
	baseUrl: '/build',
	basePath: __DIR__ . '/www/build',
	manifestPath: __DIR__ . '/www/build/.vite/manifest.json',
	devServer: 'https://localhost:5173',
));
versiyon: 1.0