Como configuro o Apache2 para servir ativos estáticos do subdiretório raiz do servidor?

Como configuro o Apache2 para servir ativos estáticos do subdiretório raiz do servidor?

Desenvolvedor front-end aqui - acabei de herdar um servidor (Mac Pro) para hospedar meus protótipos em nossa rede. Já existe um servidor Apache configurado, mas não sei muito sobre sua configuração. Este é um servidor compartilhado, portanto, embora a raiz do servidor esteja configurada em /Users/Shared, só tenho permissão para colocar meus protótipos em

/Shared/mydiv/mydept/prototypes

Eu construo meu site com webpack e ele coloca ativos estáticos em um distdiretório. A configuração do servidor está funcionando; os usuários podem navegar sharedserver.url.com/mydiv/mydept/prototypese o index.html é exibido corretamente.

O problema é que as referências index.html scripts.js, também localizadas no distdiretório, mas o servidor web as procura na raiz do servidor em sharedserver.url.com, que obviamente retorna um 404.

Estou referenciando scripts em index.html assim:

<script src="scripts.js"></script>

Da mesma forma, preciso fazer referência a algumas fontes localizadas em dist/fonts.

sharedserver.url.com/   <-- APACHE TRYING TO ACCESS STATIC ASSETS HERE
|_mydiv/
   |_ mydept/
      |_ prototypes/
         |_ _ dist/
                |_ index.html
                |_ scripts.js  <-- REALLY WISH APACHE LOOK FOR STATIC ASSETS HERE 
                | _ _fonts/
                       |_.eof,.ttf,etc.

Eu li um pouco sobre o uso de vhosts, mas o módulo ainda não está carregado no httpd.conf (comentado) e não quero causar um conflito com a configuração existente, que ainda não tenho em mente. Eu também li sobre arquivos .htaccess, mas AllowOverride está definido como None em httpd.conf - eu poderia alterá-lo e começar a aprender sobre .htaccess, mas me pergunto se há outra maneira, já que sou inexperiente em configurar esse tipo de coisa.

Existem outras maneiras (fáceis) de fazer com que o Apache procure meus ativos estáticos em meu diretório?

Responder1

Eu acho que isso ocorre porque a raiz do seu documento está definida assim

DocumentRoot "/sharedserver.url.com"

e você quer assim:

DocumentRoot "/sharedserver.url.com/mydiv/mydept/prototypes/dist"

e o caminho do diretório deve ser igual ao do documento raiz

<Directory "/sharedserver.url.com/mydiv/mydept/prototypes/dist">

se você fizer assim e usar a URL do seu domínio você será levado para index.html e seu script será mostrado corretamente

Espero que isso resolva seu problema

Responder2

Eu tive o mesmo problema e no meu caso foi causado pelo valor da basetag dentro da seção head do index.html:

<base href="/">

Isso define o URL base para URLs relativos à raiz do servidor. Eu poderia resolver o problema removendo/alterando a basetag.

Eu espero que isso ajude.

informação relacionada