<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Netlify - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Netlify - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:21:31 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/netlify/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como fazer a implantação de vários repositórios em subdiretórios de um site com o Netlify ]]>
                </title>
                <description>
                    <![CDATA[ Olá! 👋 Você, provavelmente, está aqui porque quer hospedar dois sites/repositórios em um site usando o Netlify ou já está lidando com isso. Talvez você já tenha verificado as respostas na página da comunidade do Netlify e ainda continue confuso. Saiba que a mesma confusão e dor de cabeça me ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-fazer-a-implantacao-de-varios-repositorios-em-subdiretorios-de-um-site-com-o-netlify/</link>
                <guid isPermaLink="false">62da0530fea2f10707d66ad2</guid>
                
                    <category>
                        <![CDATA[ Netlify ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Thiago Costa Barbosa ]]>
                </dc:creator>
                <pubDate>Mon, 15 Aug 2022 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/07/pexels-xxss-is-back-777001-1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-deploy-multiple-repos-to-subfolders-under-one-website-netlify/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Deploy Multiple Repositories to Subfolders Under One Website with Netlify</a>
      </p><p>Olá! 👋 Você, provavelmente, está aqui porque quer hospedar dois sites/repositórios em um site usando o Netlify ou já está lidando com isso.</p><p>Talvez você já tenha verificado as respostas na página da comunidade do Netlify e ainda continue confuso.</p><p>Saiba que a mesma confusão e dor de cabeça me levaram a escrever este tutorial para você não precisar se esforçar tanto quanto eu precisei. :)</p><p>Adianto apenas que é um pouco complicado, mas funciona: a solução para esse problema é o arquivo <code>netlify.toml</code> ou o <code>_redirects</code>.</p><p>Vamos começar!</p><p>Estou trabalhando em um projeto com alguns colegas e resolvemos dividir as tarefas. Eu fiquei com a documentação.</p><h2 id="tecnologias-que-usaremos"><strong>Tecnologias que usaremos</strong></h2><ul><li>O <a href="https://docusaurus.io/docs/">Docusaurus</a> para fazer sites bonitos de documentação em pouco tempo.</li><li>O Next.js/React.js para o nosso site principal.</li></ul><p>Podemos hospedar a documentação de duas formas:</p><ol><li>Usando um subdomínio: docs.siteprincipal.dev</li><li>Hospedando como um subdiretório: siteprincipal.dev/docs.</li></ol><p>Baseado em outros projetos de documentação que vi sendo implementados, também resolvi hospedá-lo no Netlify como um subdiretório.</p><p>Acho que isso dá um aspecto mais profissional à documentação.</p><p>Se você também quiser hospedar o Docusaurus como subdiretório, precisará fazer algumas configurações.</p><h2 id="etapa-1-atualizar-o-url-base"><strong>Etapa 1 – Atualizar o URL base</strong></h2><p>Alteraremos o <strong>URL base</strong> no arquivo docusaurus.config.js para <strong>"/docs/"</strong>, desta forma:</p><figure class="kg-card kg-code-card"><pre><code class="language-javascript">  title: 'Seu Título de Documentação',
  tagline: 'Seu slogan de documentação',
  url: 'meu-site-de-documentacao.netlify.app',
  baseUrl: "/docs/",
  onBrokenLinks: 'throw',
  onBrokenMarkdownLinks: 'warn',
  favicon: '/favicon.ico',</code></pre><figcaption><font style="box-sizing: inherit; vertical-align: inherit;">docusaurus.config.js</font></figcaption></figure><p>Quando alteramos o URL base para <strong>/docs/</strong>, estamos fazendo com que nosso site de documentação seja renderizado exatamente no endereço <strong>https://siteprincipal.dev/docs/</strong>.</p><p>Se tivéssemos definido o <strong>URL base</strong> como <strong>"/"</strong>, ocorreria um erro, pois entraria em conflito com o URL do site principal. Fazendo a alteração, também não teremos o trabalho de lidar com o proxy no site da documentação.</p><h2 id="etapa-2-atualizar-o-routebasepath"><strong>Etapa 2 – Atualizar o routeBasePath</strong></h2><p>Precisamos, além disso, nos certificar de que o conteúdo da documentação seja veiculado a partir do domínio principal, alterando o <strong>routeBasePath</strong> para <strong>"/"</strong>.</p><p>Desse modo, temos:</p><figure class="kg-card kg-code-card"><pre><code class="language-javascript">  presets: [
    [
      'classic',
      /** @type {import('@docusaurus/preset-classic').Options} */
      ({
        docs: {
          routeBasePath: '/',
        },
      }),
    ],
  ],</code></pre><figcaption><font style="box-sizing: inherit; vertical-align: inherit;">docusaurus.config.js</font></figcaption></figure><p>Isso ativa no docusaurus o modo "somente documentação", que faz com que toda a documentação seja enviada a partir do domínio principal, mas com o caminho '/docs/' como caminho de base.</p><p>Depois dessas configurações, já conseguimos executar o comando <code>npx docusaurus start</code> no localhost para ver se o site da documentação é compilado e renderizado sem problemas.</p><p>Se não tiver problemas, você deve ver algo assim:<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/docusaurus-run-localhost-1.jpg" class="kg-image" alt="docusaurus-run-localhost-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/docusaurus-run-localhost-1.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/docusaurus-run-localhost-1.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/docusaurus-run-localhost-1.jpg 1223w" sizes="(min-width: 720px) 720px" width="1223" height="182" loading="lazy"><figcaption>Seu site do docusaurus deve renderizar no caminho '/docs/' como caminho de base.</figcaption></figure><p>Para ler mais sobre as configurações do modo "somente documentação" no docusaurus, a documentação dele está <a href="https://docusaurus.io/docs/docs-introduction#docs-only-mode">aqui</a> (em inglês).</p><h2 id="etapa-3-fazer-a-implanta-o-deploy-no-netlify"><strong>Etapa 3 – Fazer a implantação (deploy) no Netlify</strong></h2><p>Agora, é hora de implantarmos o site da documentação no Netlify, que é quando o colocamos no ar. Se você ainda não sabe como fazer isso, confira <a href="https://docusaurus.io/docs/deployment#deploying-to-netlify">aqui</a> (texto em inglês).</p><p>Quando finalizarmos a implantação, o URL do site no Netlify ficará assim: meu-site-de-documentacao.netlify.app.</p><h2 id="etapa-4-fazer-o-redirecionamento-por-proxy"><strong>Etapa 4 - Fazer o redirecionamento por Proxy</strong></h2><p>Aqui é a parte em que se faz o redirecionamento da página (ou proxying).</p><p>Já hospedamos tanto o site principal quanto o site da documentação no Netlify.</p><p>Agora, precisamos criar um arquivo <em><em>netlify.toml</em></em> na pasta raiz do projeto/repositório do site principal e adicionar nele as seguintes linhas:</p><pre><code class="language-markdown">[[redirects]]
from = "/docs/*"
to = "https://meu-site-de-documentacao.netlify.app/:splat"
status = 200
force = false</code></pre><p>A regra acima garante que, sempre que o caminho <strong>/docs/</strong> for consultado no site principal, o site da documentação carregue normalmente no caminho <strong>siteprincipal.netlify.app/docs/</strong>.</p><p>Outra forma de fazer esse proxy é através de site/repositório da documentação. Basta criar um arquivo<em> netlify.toml</em> na raiz do seu site/repositório de documentação e adicionar nele as seguintes linhas:</p><pre><code class="language-toml">[[redirects]]
from = "/*"
to = "https://siteprincipal.netlify.app/docs/:splat"
status = 301
force = true</code></pre><p>A regra acima garante que, sempre que o caminho <strong>"/*"</strong> for consultado no site da documentação, ele será carregado normalmente no caminho <strong>siteprincipal.netlify.app/docs/</strong>.</p><p>Observe que o caminho d0 site da documentação no Netlify agora estará quebrado, mas funcionará perfeitamente no subdiretório do site principal.</p><p>Já que agora está tudo funcionando e alcançamos nossos objetivos, que assim seja 😁.<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/docs-site-netlify-error.jpg" class="kg-image" alt="docs-site-netlify-error" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/docs-site-netlify-error.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/08/docs-site-netlify-error.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/08/docs-site-netlify-error.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/docs-site-netlify-error.jpg 2000w" sizes="(min-width: 720px) 720px" width="2000" height="327" loading="lazy"><figcaption>Site de documentação do docusaurus quebrado no subdiretório</figcaption></figure><p><strong>OBSERVAÇÃO:</strong> nunca adicione as regras ao site da documentação e ao site principal ao mesmo tempo, pois isso causará um conflito de erros "TOO MANY REDIRECTS" (Muitos redirecionamentos).</p><p>Então, adicione as regras no site da documentação ou no site principal, mas nunca em ambos.</p><h2 id="vamos-responder-algumas-perguntas"><strong>Vamos responder algumas perguntas</strong></h2><p><strong>P:</strong> Por que é preferível usar o arquivo <em><em>netlify.toml</em></em> e não o arquivo <em><em>_redirects</em></em>?</p><p>Antes dessa alternativa, eu já tinha tentado a forma "fácil", que é o arquivo <em>_redirects</em>. Saiba, porém, que "não é tão fácil assim", porque você terá sempre que copiar o arquivo <em><em>_redirects para sua pasta </em></em><strong>build/</strong> ou <strong>public/</strong> ao construir seu site no Netlify.</p><p>Isso requer que você edite suas configurações de compilação do Netlify assim:</p><figure class="kg-card kg-code-card"><pre><code class="language-txt">npm run build &amp;&amp; cp _redirects public/</code></pre><figcaption><font style="box-sizing: inherit; vertical-align: inherit;">arquivo netlify _redirects&nbsp;</font></figcaption></figure><p>Você também pode conseguir o proxy usando o arquivo <em><em>_redirects</em></em>. As regras precisam estar neste formato no site principal:</p><figure class="kg-card kg-code-card"><pre><code class="language-txt">/docs/* https://meu-site-de-documentacao.netlify.app/:splat 200</code></pre><figcaption><font style="box-sizing: inherit; vertical-align: inherit;">arquivo netlify _redirects&nbsp;</font></figcaption></figure><p>e neste formato no site da documentação:</p><figure class="kg-card kg-code-card"><pre><code class="language-txt">/* https://siteprincipal.netlify.app/docs/:splat 301!</code></pre><figcaption><font style="box-sizing: inherit; vertical-align: inherit;">arquivo netlify _redirects&nbsp;</font></figcaption></figure><p><strong>P:</strong> Por que é preferível usar URLs do Netlify em todas as regras de proxy ao invés de usar um URL de domínio personalizado?</p><p>Bem, a comunidade do Netlify aconselha sempre usar URLs do Netlify, pois é uma forma mais confiável de fazer esse redirecionamento.</p><h2 id="conclus-o"><strong>Conclusão</strong></h2><p>Parabéns 🎉! Que bom que você chegou ao final desse artigo.</p><p>Espero que você tenha aprendido algo novo hoje.</p><p>Agora é hora de fazer a implementação e de tornar a documentação do seu projeto mais profissional também, hospedando-a no subdiretório do seu site principal 👏.</p><p>Compartilhe este artigo para que outras pessoas possam vê-lo.</p><h2 id="recursos-"><strong>Recursos:</strong></h2><ul><li><a href="https://play.netlify.com/redirects">Playground de redirects da Netlify</a> (instruções em inglês)</li><li><a href="https://answers.netlify.com/t/support-guide-can-i-deploy-multiple-repositories-in-a-single-site/179">[Tutorial de Suporte] Posso implantar vários repositórios em um único site?</a> (em inglês)</li></ul> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
