Configuration des Assets
Aperçu des options de configuration pour Nette Assets.
assets:
# chemin de base pour la résolution des chemins relatifs des mappers
basePath: ... # (string) par défaut à %wwwDir%
# URL de base pour la résolution des URL relatives des mappers
baseUrl: ... # (string) par défaut à %baseUrl%
# activer le versioning des assets globalement ?
versioning: ... # (bool) par défaut à true
# définit les mappers d'assets
mapping: ... # (array) par défaut au chemin 'assets'
Le basePath
définit le répertoire de système de fichiers par défaut pour la résolution des chemins relatifs
dans les mappers. Par défaut, il utilise le répertoire web (%wwwDir%
).
Le baseUrl
définit le préfixe d'URL par défaut pour la résolution des URL relatives dans les mappers. Par
défaut, il utilise l'URL racine (%baseUrl%
).
L'option versioning
contrôle globalement si les paramètres de version sont ajoutés aux URL des assets pour
l'invalidation du cache. Les mappers individuels peuvent outrepasser ce paramètre.
Mappers
Les mappers peuvent être configurés de trois manières : notation de chaîne simple, notation de tableau détaillée, ou comme référence à un service.
La manière la plus simple de définir un mapper :
assets:
mapping:
default: assets # Crée un mapper de système de fichiers pour %wwwDir%/assets/
images: img # Crée un mapper de système de fichiers pour %wwwDir%/img/
scripts: js # Crée un mapper de système de fichiers pour %wwwDir%/js/
Chaque mapper crée un FilesystemMapper
qui :
- Cherche les fichiers dans
%wwwDir%/<path>
- Génère des URL comme
%baseUrl%/<path>
- Hérite du paramètre de versioning global
Pour plus de contrôle, utilisez la notation détaillée :
assets:
mapping:
images:
# répertoire où les fichiers sont stockés
path: ... # (string) optionnel, par défaut à ''
# préfixe d'URL pour les liens générés
url: ... # (string) optionnel, par défaut à path
# activer le versioning pour ce mapper ?
versioning: ... # (bool) optionnel, hérite du paramètre global
# ajouter automatiquement l'extension (les extensions) lors de la recherche de fichiers
extension: ... # (string|array) optionnel, par défaut à null
Comprendre comment les valeurs de configuration sont résolues :
- Résolution de chemin
- Les chemins relatifs sont résolus à partir de
basePath
(ou%wwwDir%
sibasePath
n'est pas défini) - Les chemins absolus sont utilisés tels quels
- Résolution d'URL
- Les URL relatives sont résolues à partir de
baseUrl
(ou%baseUrl%
sibaseUrl
n'est pas défini) - Les URL absolues (avec schéma ou
//
) sont utilisées telles quelles - Si
url
n'est pas spécifié, il utilise la valeur depath
assets:
basePath: /var/www/project/www
baseUrl: https://example.com/assets
mapping:
# Chemin et URL relatifs
images:
path: img # Résolu en : /var/www/project/www/img
url: images # Résolu en : https://example.com/assets/images
# Chemin et URL absolus
uploads:
path: /var/shared/uploads # Utilisé tel quel : /var/shared/uploads
url: https://cdn.example.com # Utilisé tel quel : https://cdn.example.com
# Seul le chemin est spécifié
styles:
path: css # Chemin : /var/www/project/www/css
# URL : https://example.com/assets/css
Mappers personnalisés
Pour les mappers personnalisés, référencez ou définissez un service :
services:
s3mapper: App\Assets\S3Mapper(%s3.bucket%)
assets:
mapping:
cloud: @s3mapper
database: App\Assets\DatabaseMapper(@database.connection)
Vite Mapper
Le mapper Vite ne nécessite que l'ajout de type: vite
. Voici une liste complète des options de
configuration :
assets:
mapping:
default:
# type de mapper (obligatoire pour Vite)
type: vite # (string) obligatoire, doit être 'vite'
# répertoire de sortie de la build Vite
path: ... # (string) optionnel, par défaut à ''
# préfixe d'URL pour les assets construits
url: ... # (string) optionnel, par défaut à path
# emplacement du fichier manifest de Vite
manifest: ... # (string) optionnel, par défaut à <path>/.vite/manifest.json
# configuration du serveur de développement Vite
devServer: ... # (bool|string) optionnel, par défaut à true
# versioning pour les fichiers du répertoire public
versioning: ... # (bool) optionnel, hérite du paramètre global
# auto-extension pour les fichiers du répertoire public
extension: ... # (string|array) optionnel, par défaut à null
L'option devServer
contrôle la manière dont les assets sont chargés pendant le développement :
true
(par défaut) – Détecte automatiquement le serveur de développement Vite sur l'hôte et le port actuels. Si le serveur de développement est en cours d'exécution et que votre application est en mode débogage, les assets sont chargés à partir de celui-ci avec le support du rechargement à chaud des modules (HMR). Si le serveur de développement n'est pas en cours d'exécution, les assets sont chargés à partir des fichiers construits dans le répertoire public.false
– Désactive complètement l'intégration du serveur de développement. Les assets sont toujours chargés à partir des fichiers construits.- URL personnalisée (par exemple,
https://localhost:5173
) – Spécifiez manuellement l'URL du serveur de développement, y compris le protocole et le port. Utile lorsque le serveur de développement s'exécute sur un hôte ou un port différent.
Les options versioning
et extension
s'appliquent uniquement aux fichiers du répertoire public de
Vite qui ne sont pas traités par Vite.
Configuration manuelle
Lorsque vous n'utilisez pas Nette DI, configurez les mappers manuellement :
use Nette\Assets\Registry;
use Nette\Assets\FilesystemMapper;
use Nette\Assets\ViteMapper;
$registry = new Registry;
// Ajoute un mapper de système de fichiers
$registry->addMapper('images', new FilesystemMapper(
baseUrl: 'https://example.com/img',
basePath: __DIR__ . '/www/img',
extensions: ['webp', 'jpg', 'png'],
versioning: true,
));
// Ajoute un mapper Vite
$registry->addMapper('app', new ViteMapper(
baseUrl: '/build',
basePath: __DIR__ . '/www/build',
manifestPath: __DIR__ . '/www/build/.vite/manifest.json',
devServer: 'https://localhost:5173',
));