Διαμόρφωση Assets
Επισκόπηση των επιλογών διαμόρφωσης για το Nette Assets.
assets:
# base path for resolving relative mapper paths
basePath: ... # (string) defaults to %wwwDir%
# base URL for resolving relative mapper URLs
baseUrl: ... # (string) defaults to %baseUrl%
# enable asset versioning globally?
versioning: ... # (bool) defaults to true
# defines asset mappers
mapping: ... # (array) defaults to path 'assets'
Το basePath
ορίζει τον προεπιλεγμένο κατάλογο συστήματος αρχείων
για την επίλυση σχετικών διαδρομών σε mappers. Από προεπιλογή,
χρησιμοποιεί τον κατάλογο web (%wwwDir%
).
Το baseUrl
ορίζει το προεπιλεγμένο πρόθεμα URL για την επίλυση
σχετικών URL σε mappers. Από προεπιλογή, χρησιμοποιεί το root URL
(%baseUrl%
).
Η επιλογή versioning
ελέγχει καθολικά εάν προστίθενται παράμετροι
έκδοσης στις διευθύνσεις URL των assets για την εκκαθάριση της κρυφής
μνήμης. Οι μεμονωμένοι mappers μπορούν να παρακάμψουν αυτήν τη ρύθμιση.
Mappers
Οι Mappers μπορούν να διαμορφωθούν με τρεις τρόπους: απλή σύνταξη συμβολοσειράς, λεπτομερής σύνταξη πίνακα ή ως αναφορά σε μια υπηρεσία.
Ο απλούστερος τρόπος για να ορίσετε έναν mapper:
assets:
mapping:
default: assets # Creates filesystem mapper for %wwwDir%/assets/
images: img # Creates filesystem mapper for %wwwDir%/img/
scripts: js # Creates filesystem mapper for %wwwDir%/js/
Κάθε mapper δημιουργεί έναν FilesystemMapper
που:
- Αναζητά αρχεία στο
%wwwDir%/<path>
- Δημιουργεί διευθύνσεις URL όπως
%baseUrl%/<path>
- Κληρονομεί την καθολική ρύθμιση έκδοσης
Για περισσότερο έλεγχο, χρησιμοποιήστε τη λεπτομερή σύνταξη:
assets:
mapping:
images:
# directory where files are stored
path: ... # (string) optional, defaults to ''
# URL prefix for generated links
url: ... # (string) optional, defaults to path
# enable versioning for this mapper?
versioning: ... # (bool) optional, inherits global setting
# auto-add extension(s) when searching for files
extension: ... # (string|array) optional, defaults to null
Κατανόηση του τρόπου επίλυσης των τιμών διαμόρφωσης:
- Επίλυση Διαδρομής
- Οι σχετικές διαδρομές επιλύονται από το
basePath
(ή%wwwDir%
εάν τοbasePath
δεν έχει οριστεί) - Οι απόλυτες διαδρομές χρησιμοποιούνται ως έχουν
- Επίλυση URL
- Οι σχετικές διευθύνσεις URL επιλύονται από το
baseUrl
(ή%baseUrl%
εάν τοbaseUrl
δεν έχει οριστεί) - Οι απόλυτες διευθύνσεις URL (με σχήμα ή
//
) χρησιμοποιούνται ως έχουν - Εάν το
url
δεν έχει καθοριστεί, χρησιμοποιεί την τιμή τουpath
assets:
basePath: /var/www/project/www
baseUrl: https://example.com/assets
mapping:
# Relative path and URL
images:
path: img # Resolved to: /var/www/project/www/img
url: images # Resolved to: https://example.com/assets/images
# Absolute path and URL
uploads:
path: /var/shared/uploads # Used as-is: /var/shared/uploads
url: https://cdn.example.com # Used as-is: https://cdn.example.com
# Only path specified
styles:
path: css # Path: /var/www/project/www/css
# URL: https://example.com/assets/css
Προσαρμοσμένοι Mappers
Για προσαρμοσμένους mappers, αναφέρετε ή ορίστε μια υπηρεσία:
services:
s3mapper: App\Assets\S3Mapper(%s3.bucket%)
assets:
mapping:
cloud: @s3mapper
database: App\Assets\DatabaseMapper(@database.connection)
Vite Mapper
Ο Vite mapper απαιτεί μόνο να προσθέσετε type: vite
. Αυτή είναι μια
πλήρης λίστα επιλογών διαμόρφωσης:
assets:
mapping:
default:
# mapper type (required for Vite)
type: vite # (string) required, must be 'vite'
# Vite build output directory
path: ... # (string) optional, defaults to ''
# URL prefix for built assets
url: ... # (string) optional, defaults to path
# location of Vite manifest file
manifest: ... # (string) optional, defaults to <path>/.vite/manifest.json
# Vite dev server configuration
devServer: ... # (bool|string) optional, defaults to true
# versioning for public directory files
versioning: ... # (bool) optional, inherits global setting
# auto-extension for public directory files
extension: ... # (string|array) optional, defaults to null
Η επιλογή devServer
ελέγχει τον τρόπο φόρτωσης των assets κατά την
ανάπτυξη:
true
(προεπιλογή) – Ανιχνεύει αυτόματα τον Vite dev server στον τρέχοντα host και port. Εάν ο dev server εκτελείται και η εφαρμογή σας είναι σε λειτουργία debug, τα assets φορτώνονται από αυτόν με υποστήριξη hot module replacement. Εάν ο dev server δεν εκτελείται, τα assets φορτώνονται από τα δημιουργημένα αρχεία στον δημόσιο κατάλογο.false
– Απενεργοποιεί πλήρως την ενσωμάτωση του dev server. Τα assets φορτώνονται πάντα από τα δημιουργημένα αρχεία.- Προσαρμοσμένη διεύθυνση URL (π.χ.,
https://localhost:5173
) – Καθορίστε χειροκίνητα τη διεύθυνση URL του dev server συμπεριλαμβανομένου του πρωτοκόλλου και του port. Χρήσιμο όταν ο dev server εκτελείται σε διαφορετικό host ή port.
Οι επιλογές versioning
και extension
ισχύουν μόνο για αρχεία
στον δημόσιο κατάλογο του Vite που δεν επεξεργάζονται από το Vite.
Μη Αυτόματη Διαμόρφωση
Όταν δεν χρησιμοποιείτε το Nette DI, διαμορφώστε τους mappers χειροκίνητα:
use Nette\Assets\Registry;
use Nette\Assets\FilesystemMapper;
use Nette\Assets\ViteMapper;
$registry = new Registry;
// Add filesystem mapper
$registry->addMapper('images', new FilesystemMapper(
baseUrl: 'https://example.com/img',
basePath: __DIR__ . '/www/img',
extensions: ['webp', 'jpg', 'png'],
versioning: true,
));
// Add Vite mapper
$registry->addMapper('app', new ViteMapper(
baseUrl: '/build',
basePath: __DIR__ . '/www/build',
manifestPath: __DIR__ . '/www/build/.vite/manifest.json',
devServer: 'https://localhost:5173',
));