You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vitepress/v1/assets/pt_guide_asset-handling.md....

10 lines
9.6 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

import{_ as e,c as i,ag as a,o}from"./chunks/framework.C1C4sYC0.js";const k=JSON.parse('{"title":"Manipulação de Ativos","description":"","frontmatter":{},"headers":[],"relativePath":"pt/guide/asset-handling.md","filePath":"pt/guide/asset-handling.md","lastUpdated":1709796637000}'),t={name:"pt/guide/asset-handling.md"};function n(r,s,d,l,p,c){return o(),i("div",null,s[0]||(s[0]=[a(`<h1 id="asset-handling" tabindex="-1">Manipulação de Ativos <a class="header-anchor" href="#asset-handling" aria-label="Permalink to &quot;Manipulação de Ativos {#asset-handling}&quot;"></a></h1><h2 id="referencing-static-assets" tabindex="-1">Referenciando Ativos Estáticos <a class="header-anchor" href="#referencing-static-assets" aria-label="Permalink to &quot;Referenciando Ativos Estáticos {#referencing-static-assets}&quot;"></a></h2><p>Todos os arquivos Markdown são compilados em componentes Vue e processados por <a href="https://vitejs.dev/guide/assets.html" target="_blank" rel="noreferrer">Vite</a>. Você pode <strong>e deve</strong> referenciar quaisquer ativos usando URLs relativas:</p><div class="language-md vp-adaptive-theme"><button title="Copiar código" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">![</span><span style="--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;">Uma imagem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">](</span><span style="--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;">./imagem.png</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div><p>Você pode referenciar ativos estáticos em seus arquivos markdown, seus componentes <code>*.vue</code> no tema, estilos e simples arquivos <code>.css</code>, usando caminhos públicos absolutos (com base na raiz do projeto) ou caminhos relativos (com base em seu sistema de arquivos). Este último é semelhante ao comportamento que você está acostumado se já usou Vite, Vue CLI ou o <code>file-loader</code> do webpack.</p><p>Tipos comuns de arquivos de imagem, mídia e fonte são detectados e incluídos automaticamente como ativos.</p><p>Todos os ativos referenciados, incluindo aqueles usando caminhos absolutos, serão copiados para o diretório de saída com um nome de arquivo hash na compilação de produção. Ativos nunca referenciados não serão copiados. Ativos de imagem menores que 4KB serão incorporados em base64 - isso pode ser configurado pela opção <a href="./../reference/site-config#vite"><code>vite</code></a> da configuração.</p><p>Todas as referências de caminho <strong>estáticas</strong>, incluindo caminhos absolutos, devem ser baseadas na estrutura do seu diretório de trabalho.</p><h2 id="the-public-directory" tabindex="-1">O Diretório Público <a class="header-anchor" href="#the-public-directory" aria-label="Permalink to &quot;O Diretório Público {#the-public-directory}&quot;"></a></h2><p>Às vezes, pode ser necessário fornecer ativos estáticos que não são referenciados diretamente em nenhum de seus componentes do tema ou Markdown, ou você pode querer servir certos arquivos com o nome de arquivo original. Exemplos de tais arquivos incluem <code>robots.txt</code>, favicons e ícones PWA.</p><p>Você pode colocar esses arquivos no diretório <code>public</code> sob o <a href="./routing#source-directory">diretório fonte</a>. Por exemplo, se a raiz do seu projeto for <code>./docs</code> e estiver usando a localização padrão do diretório fonte, então o diretório público será <code>./docs/public</code>.</p><p>Os ativos colocados em <code>public</code> serão copiados para a raiz do diretório de saída como são.</p><p>Observe que você deve referenciar arquivos colocados em <code>public</code> usando o caminho absoluto da raiz - por exemplo, <code>public/icon.png</code> deve sempre ser referenciado no código fonte como <code>/icon.png</code>.</p><h2 id="base-url" tabindex="-1">URL Base <a class="header-anchor" href="#base-url" aria-label="Permalink to &quot;URL Base {#base-url}&quot;"></a></h2><p>Se seu site for implantado em uma URL que não seja a raiz, será necessário definir a opção <code>base</code> em <code>.vitepress/config.js</code>. Por exemplo, se você planeja implantar seu site em <code>https://foo.github.io/bar/</code>, então <code>base</code> deve ser definido como <code>&#39;/bar/&#39;</code> (sempre deve começar e terminar com uma barra).</p><p>Todos os caminhos dos seus ativos estáticos são processados automaticamente para se ajustar aos diferentes valores de configuração <code>base</code>. Por exemplo, se você tiver uma referência absoluta a um ativo sob <code>public</code> no seu markdown:</p><div class="language-md vp-adaptive-theme"><button title="Copiar código" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">![</span><span style="--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;">Uma imagem</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">](</span><span style="--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;">/imagem-dentro-de-public.png</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div><p>Você <strong>não</strong> precisa atualizá-lo quando alterar o valor de configuração <code>base</code> nesse caso.</p><p>No entanto, se você estiver criando um componente de tema que vincula ativos dinamicamente, por exemplo, uma imagem cujo <code>src</code> é baseado em um valor de configuração do tema:</p><div class="language-vue vp-adaptive-theme"><button title="Copiar código" class="copy"></button><span class="lang">vue</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">img</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> :</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">src</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">theme.logoPath</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> /&gt;</span></span></code></pre></div><p>Nesse caso, é recomendável envolver o caminho com o <a href="./../reference/runtime-api#withbase"><code>auxiliar withBase</code></a> fornecido por VitePress:</p><div class="language-vue vp-adaptive-theme"><button title="Copiar código" class="copy"></button><span class="lang">vue</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">script</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> setup</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { withBase, useData } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;vitepress&#39;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">theme</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> useData</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">script</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">template</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> &lt;</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">img</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> :src</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;withBase(theme.logoPath)&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> /&gt;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;/</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">template</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span></code></pre></div>`,22)]))}const u=e(t,[["render",n]]);export{k as __pageData,u as default};