Назад | Перейти на главную страницу

Как мне настроить 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 в httpd.conf установлено значение None - я мог бы изменить его, а затем начать изучать .htaccess, но мне интересно, есть ли другой способ, поскольку я неопытен в настройке такого рода вещей.

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

У меня была такая же проблема, и в моем случае это было вызвано стоимостью base внутри заголовка index.html:

<base href="/">

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

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

Я думаю, это потому, что ваш корень документа настроен так

DocumentRoot "/sharedserver.url.com"

и вы этого хотите:

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

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

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

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

Я надеюсь это решит твою проблему