Site

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.

ℹ️Em poucas palavras

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

HelperPasta
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'
⚠️A base não vem no JSON

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.