Как настроить apache2 для обслуживания статических ресурсов из корневого подкаталога сервера?

Как настроить apache2 для обслуживания статических ресурсов из корневого подкаталога сервера?

Разработчик интерфейса здесь - я только что унаследовал сервер (Mac Pro) для размещения моих прототипов в нашей сети. На нем уже установлен сервер Apache, но я не знаю многого о его конфигурации. Это общий сервер, поэтому, хотя корневой каталог сервера настроен на /Users/Shared, у меня есть только разрешения размещать мои прототипы на

/Shared/mydiv/mydept/prototypes

Я создаю свой сайт с помощью webpack, и он размещает статические ресурсы в distкаталоге. Конфигурация сервера работает; пользователи могут просматривать, sharedserver.url.com/mydiv/mydept/prototypesи index.html обслуживается правильно.

Проблема в том, что index.html ссылается на scripts.js, также расположенный в distкаталоге, но веб-сервер ищет их в корне сервера по адресу sharedserver.url.com, который, очевидно, возвращает 404.

Я ссылаюсь на скрипты в index.html следующим образом:

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

Аналогично мне нужно сослаться на некоторые шрифты, расположенные в 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.

Я немного читал об использовании vhosts, но модуль еще не загружен в httpd.conf (закомментирован), и я не хочу вызывать конфликт с существующей конфигурацией, в которой я еще не совсем разобрался. Я также читал о файлах .htaccess, но AllowOverride установлен на None в httpd.conf - я мог бы изменить это, а затем начать изучать .htaccess, но мне интересно, есть ли другой способ, так как у меня нет опыта в настройке такого рода вещей.

Есть ли другие (более простые) способы заставить Apache искать мои статические ресурсы в моем каталоге?

решение1

Я думаю, это потому, что ваш корневой каталог документов настроен следующим образом

DocumentRoot "/sharedserver.url.com"

и вы хотите, чтобы было так:

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

и путь к каталогу должен совпадать с корневым каталогом документа

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

Если вы сделаете это таким образом и используете URL-адрес вашего домена, вы будете перенаправлены на index.html, и ваш скрипт будет отображаться правильно.

Надеюсь, это решит вашу проблему.

решение2

У меня была та же проблема, и в моем случае она была вызвана значением тега baseвнутри раздела head файла index.html:

<base href="/">

Это установило базовый URL для относительных URL на корневой каталог сервера. Я мог бы решить проблему, удалив/изменив тег base.

Надеюсь, это поможет.

Связанный контент