Configuração de Assets
Visão geral das opções de configuração para Nette Assets.
assets:
# caminho base para resolver caminhos de mapper relativos
basePath: ... # (string) padrão para %wwwDir%
# URL base para resolver URLs de mapper relativas
baseUrl: ... # (string) padrão para %baseUrl%
# habilitar versionamento de asset globalmente?
versioning: ... # (bool) padrão para true
# define os mappers de asset
mapping: ... # (array) padrão para o caminho 'assets'
O basePath
define o diretório padrão do sistema de arquivos para resolver caminhos relativos em mappers. Por
padrão, ele usa o diretório web (%wwwDir%
).
A baseUrl
define o prefixo de URL padrão para resolver URLs relativas em mappers. Por padrão, ele usa a URL
raiz (%baseUrl%
).
A opção versioning
controla globalmente se os parâmetros de versão são adicionados às URLs dos assets para
cache busting. Mappers individuais podem substituir essa configuração.
Mappers
Mappers podem ser configurados de três maneiras: notação de string simples, notação de array detalhada ou como uma referência a um serviço.
A maneira mais simples de definir um mapper:
assets:
mapping:
default: assets # Cria um mapper de sistema de arquivos para %wwwDir%/assets/
images: img # Cria um mapper de sistema de arquivos para %wwwDir%/img/
scripts: js # Cria um mapper de sistema de arquivos para %wwwDir%/js/
Cada mapper cria um FilesystemMapper
que:
- Procura arquivos em
%wwwDir%/<path>
- Gera URLs como
%baseUrl%/<path>
- Herda a configuração de versionamento global
Para mais controle, use a notação detalhada:
assets:
mapping:
images:
# diretório onde os arquivos são armazenados
path: ... # (string) opcional, padrão para ''
# prefixo de URL para links gerados
url: ... # (string) opcional, padrão para path
# habilitar versionamento para este mapper?
versioning: ... # (bool) opcional, herda a configuração global
# adicionar automaticamente extensão(ões) ao procurar arquivos
extension: ... # (string|array) opcional, padrão para null
Entendendo como os valores de configuração são resolvidos:
- Resolução de Caminho
- Caminhos relativos são resolvidos a partir de
basePath
(ou%wwwDir%
sebasePath
não estiver definido) - Caminhos absolutos são usados como estão
- Resolução de URL
- URLs relativas são resolvidas a partir de
baseUrl
(ou%baseUrl%
sebaseUrl
não estiver definido) - URLs absolutas (com esquema ou
//
) são usadas como estão - Se
url
não for especificado, ele usa o valor depath
assets:
basePath: /var/www/project/www
baseUrl: https://example.com/assets
mapping:
# Caminho e URL relativos
images:
path: img # Resolvido para: /var/www/project/www/img
url: images # Resolvido para: https://example.com/assets/images
# Caminho e URL absolutos
uploads:
path: /var/shared/uploads # Usado como está: /var/shared/uploads
url: https://cdn.example.com # Usado como está: https://cdn.example.com
# Apenas o caminho especificado
styles:
path: css # Caminho: /var/www/project/www/css
# URL: https://example.com/assets/css
Mappers Personalizados
Para mappers personalizados, faça referência ou defina um serviço:
services:
s3mapper: App\Assets\S3Mapper(%s3.bucket%)
assets:
mapping:
cloud: @s3mapper
database: App\Assets\DatabaseMapper(@database.connection)
Vite Mapper
O mapper Vite exige apenas que você adicione type: vite
. Esta é uma lista completa de opções de
configuração:
assets:
mapping:
default:
# tipo de mapper (obrigatório para Vite)
type: vite # (string) obrigatório, deve ser 'vite'
# diretório de saída de construção do Vite
path: ... # (string) opcional, padrão para ''
# prefixo de URL para assets construídos
url: ... # (string) opcional, padrão para path
# localização do arquivo de manifesto do Vite
manifest: ... # (string) opcional, padrão para <path>/.vite/manifest.json
# configuração do servidor de desenvolvimento do Vite
devServer: ... # (bool|string) opcional, padrão para true
# versionamento para arquivos do diretório público
versioning: ... # (bool) opcional, herda a configuração global
# auto-extensão para arquivos do diretório público
extension: ... # (string|array) opcional, padrão para null
A opção devServer
controla como os assets são carregados durante o desenvolvimento:
true
(padrão) – Detecta automaticamente o servidor de desenvolvimento Vite no host e porta atuais. Se o servidor de desenvolvimento estiver em execução e sua aplicação estiver em modo de depuração, os assets são carregados dele com suporte a hot module replacement. Se o servidor de desenvolvimento não estiver em execução, os assets são carregados dos arquivos construídos no diretório público.false
– Desativa completamente a integração do servidor de desenvolvimento. Os assets são sempre carregados dos arquivos construídos.- URL personalizada (por exemplo,
https://localhost:5173
) – Especifique manualmente a URL do servidor de desenvolvimento, incluindo protocolo e porta. Útil quando o servidor de desenvolvimento é executado em um host ou porta diferente.
As opções versioning
e extension
aplicam-se apenas a arquivos no diretório público do Vite que
não são processados pelo Vite.
Configuração Manual
Quando não estiver usando Nette DI, configure os mappers manualmente:
use Nette\Assets\Registry;
use Nette\Assets\FilesystemMapper;
use Nette\Assets\ViteMapper;
$registry = new Registry;
// Adiciona o mapper de sistema de arquivos
$registry->addMapper('images', new FilesystemMapper(
baseUrl: 'https://example.com/img',
basePath: __DIR__ . '/www/img',
extensions: ['webp', 'jpg', 'png'],
versioning: true,
));
// Adiciona o mapper Vite
$registry->addMapper('app', new ViteMapper(
baseUrl: '/build',
basePath: __DIR__ . '/www/build',
manifestPath: __DIR__ . '/www/build/.vite/manifest.json',
devServer: 'https://localhost:5173',
));