Создайте статический сайт один раз и разверните на нескольких хостах
Я хочу создать свою документацию для размещения в нескольких автономных средах, размещенных в док-контейнерах. Это требует следующих ключевых функций в генераторе статического сайта,
- Используйте все ресурсы (js / css), размещенные локально со статическими файлами html.
- конфигурировать
url
а такжеbaseUrl
во время развертывания (когда запущен Docker-контейнер).
Эти две конфигурации могут помочь в создании, развертывании один раз в любом месте и в автономной среде.
Два вопроса,
- Как установить URL во время развертывания?
- Как настроить все ресурсы для локального размещения?
1 ответ
Вам нужно будет написать собственный сценарий, который перезаписывает siteConfig.js
в этом. Поток высокого уровня того, как это должно происходить:
- Запустить скрипт, заменяющий URL в
siteConfig.js
для размещения 1 (replace1.js
) - Запустите сценарий развертывания.
- Запустить скрипт, заменяющий URL в
siteConfig.js
к хозяину 2 (replace2.js
) - Запустите сценарий развертывания.
В package.json
добавьте строку в scripts
часть:
"scripts": {
...
"deploy-multiple": "./replace1.js && docusaurus-build && ./replace2.js && docusaurus-build",
...
}
Вы можете подумать, что вы должны написать URL в https://{{ baseUrl }}/a.js
и установите baseUrl в опциях компиляции, на самом деле вам не нужно этого делать.
Просто используйте относительный путь, предложите иметь тег изображения
<img src="somephoto.jpg" />
означает, что файл находится в том же каталоге, что и текущая страница<img src="../somephoto.jpg" />
означает, что файл находится в верхнем каталоге на текущей странице<img src="/somephoto.jpg" />
значит файл находится в корне сайта