
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 dist
diretório. A configuração do servidor está funcionando; os usuários podem navegar sharedserver.url.com/mydiv/mydept/prototypes
e o index.html é exibido corretamente.
O problema é que as referências index.html scripts.js
, também localizadas no dist
diretó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 base
tag 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 base
tag.
Eu espero que isso ajude.