У меня есть конфигурация webpack для клиента и сервера, сервер может получить доступ к связанному коду, так что я могу позвонить react.renderToString(<App>)
для создания содержимого, отображаемого на стороне сервера (а затем содержимое становится гидратированным на стороне клиента).
Сервер смонтирован в подпуть, поэтому, чтобы использовать его локально, вы посетите http://localhost:8080/some/path
.
Все работает без нареканий, кроме путей к ресурсам! Допустим, <App>
создает изображение, например <img src="/static/logo.svg"/>
(то есть App.tsx
импортирует ./logo.svg
и использует его в теге изображения), поскольку сервер монтируется в подпуть, URL-адрес HTML для lo go .svg должен иметь префикс базового пути. Таким образом, реальный окончательный sr c должен быть /some/path/static/logo.svg
.
. Я могу сделать эту работу на клиенте, установив __webpack_public_path__
перед другим импортом, и это отлично работает! Но как я могу использовать это на сервере? Я знаю только, где он монтируется для каждого запроса, и __webpack_public_path__
можно установить только во время импорта (насколько я могу судить), так что мне кажется, что я костей. Конечно, если я изменю __webpack_public_path__
после запуска, новое значение не будет использовано.
Есть ли какие-либо решения? Я счастлив включить любые фрагменты кода, чтобы прояснить любой контекст. В настоящее время запрос поступает на сервер через заголовок запроса, и я подумал, что было бы просто «просто» использовать его для префикса ресурсов.
Для справки, сервер - это сервер Express, а SVG-файл загружается через стандартный загрузчик файлов. Рад обновить мой Q с дополнительной информацией или кодом. Я часами бился с этим, поэтому любая помощь, понимание, мысли или догадки очень ценились (я все еще довольно новичок в вебпаке и др.).