Создайте статический сайт один раз и разверните на нескольких хостах

Я хочу создать свою документацию для размещения в нескольких автономных средах, размещенных в док-контейнерах. Это требует следующих ключевых функций в генераторе статического сайта,

  • Используйте все ресурсы (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" /> значит файл находится в корне сайта
Другие вопросы по тегам