Assets
Os helpers são os de app/engine/core/helpers.php. No template Vue eles já estão disponíveis, no mesmo contrato da página de Assets do React.
Arquivo em public/ é src('images/logo.png'). Arquivo do tema é theme_src('images/banner.jpg'). A página não monta /public na mão.
No template
<img :src="src(`platform/sliders/${slide.image}`)" alt="" />src(), asset(), resource(), theme_src(), theme_asset() e plugin_src() funcionam no template sem import. No <script setup>, route() também funciona sem import. Os helpers de arquivo, se forem chamados no script, usam o mesmo nome porque a entrada da Engine os publica junto.
O que cada um aponta
| Helper | Pasta |
|---|---|
src(path) / asset(path) | public/ |
resource(path) | public/assets/ |
theme_src(path) / theme_asset(path) | themes/{tema}/assets/ |
plugin_src(plugin, path) | app/modules/{plugin}/views/assets/ |
Banner e logo
A Engine não fixa o nome do arquivo. O layout escolhe.
<script setup>
const banner = theme_src('images/banner.jpg')
const logo = src('images/logo.png')
</script>
<template>
<header :style="banner ? { backgroundImage: `url('${banner}')` } : undefined">
<img v-if="logo" :src="logo" alt="" />
</header>
</template>Quem já tem a URL pronta escreve a string no layout.
const logo = 'https://cdn.exemplo/marca.png'As bases ficam no arquivo de cache da Engine, o mesmo das rotas, carregado uma vez. Navegar pela SPA não baixa essas URLs de novo.