Desenvolvimento

28 jan, 2019

Deploy de aplicações SPA em servidores IIS (Vue e Quasar)

Publicidade

Recentemente tive alguns probleminhas ao fazer o deploy de aplicações em um servidor IIS, então resolvi fazer uma pesquisa aprofundada para buscar uma solução adequada para isso e mostrarei neste artigo.

Gerando a build da aplicação Quasar

Essa etapa é muito simples e bem explicada na documentação oficial. Caso esteja utilizando Vue, basta rodar o comando abaixo:

npm run build

Ou, caso esteja desenvolvendo em Quasar:

quasar Build

Depois de finalizar, basta acessar a build na pasta dist do projeto.

Configurando o IIS

Verifique se o module URL-Rewrite está instalado em seu servidor IIS. Caso não esteja, baixe a versão correta pra ele.

Antes de criarmos nosso novo site, é necessário preparar o ambiente para recebê-lo.

Vamos clicar com o botão direito do mouse em Pools de Aplicativo (Applications Pools) e depois em “Adicionar Pool de Aplicativos…“.

Criamos uma novo pool com qualquer nome – chamaremos, neste exemplo, de W3_SINGLE_PAGES, e marcaremos a versão do .NET CLR para “Sem Código Gerenciado“:

Agora procure pela pasta onde as aplicações são armazenadas no servidor.

  • Crie a pasta com o nome da sua aplicação (exemplo: sso), e dentro dela jogue todo o conteúdo gerado pelo comando de build (html, css, js, assets, etc).
  • Crie um novo site apontando para a pasta criada.
  • Crie um arquivo Web.config dentro da pasta do projeto com o seguinte código:
<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
  <system.webServer>
   <rewrite>
    <rules>
     <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAll">
       <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
       <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.html" />
     </rule>
    </rules>
   </rewrite>
 <httpErrors> 
   <remove statusCode="404" subStatusCode="-1" /> 
   <remove statusCode="500" subStatusCode="-1" />
   <error statusCode="404" path="/survey/notfound" responseMode="ExecuteURL" /> 
   <error statusCode="500" path="/survey/error" responseMode="ExecuteURL" />
  </httpErrors>
 </system.webServer>
</configuration>

Por fim, no IIS clicamos com o botão direito em Default Web Site e seguimos para Adicionar Aplicativo.

Inserimos seu nome virtual (neste caso, sso), escolhemos o pool de aplicativos que criamos anteriormente (W3_SINGLE_PAGES) e localizamos o caminho físico onde colocamos a build.

Agora acessamos nossa aplicação pelo navegador com endereçoServidor/nomeAplicativo. Como exemplo, utilizei a aplicação de segurança desenvolvida com Quasar.

Ao acessar, inspecione a aplicação para verificar se não há erros no console, ou, na aba de network observe se houve falha no carregamento de alguma dependência (CSS, JS, etc).

Referência

https://www.linkedin.com/pulse/hosting-vue-js-spa-build-microsoft-iis-zainul-zain/