
Разработчик интерфейса здесь - я только что унаследовал сервер (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
.
Надеюсь, это поможет.