Установка домашней страницы в package.json не устанавливает PUBLIC_URL при сборке - PullRequest
0 голосов
/ 26 апреля 2018

Здесь следует документация (Построение для относительных путей) , поэтому установка поля домашней страницы в package.json не устанавливает PUBLIC_URL во время сборки.

Ожидаемое поведение

%PUBLIC_URL% в build/index.html следует заменить URL-адресом, заданным в поле домашней страницы package.json.

package.json:

"homepage": "https://example.com",

построить / index.html:

<script type="text/javascript" src="https://example.com/static/js/main.ec7f8973.js">

Фактическое поведение

<script type="text/javascript" src="/static/js/main.ec7f8973.js">

%PUBLIC_URL% будет заменено ничем.

Может кто-нибудь, пожалуйста, помогите мне с этим. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

После установки поля домашней страницы в package.json при создании вашей сборки отображается следующее сообщение:

The project was built assuming it is hosted at https://example.com.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.

Что приводит к вашему фактическому поведению .

Мне нужен был полный URL-адрес для метатегов, таких как og: image и twitter: image: src

Как и Таймер сказал : "Только путь URL-адреса интерполируется в% PUBLIC_URL%, если только вы явно не используете переменную среды PUBLIC_URL."

Поэтому я создаю файл .env в корневом каталоге моего приложения, добавив переменную, ссылающуюся на тот же URL-адрес на домашней странице пакета:

REACT_APP_BASE_URL=https://example.com

В index.html я заменил% PUBLIC_URL% для переменной env:

<meta property="og:image" content="%REACT_APP_BASE_URL%/img/facebook_1200x630.jpg" />

И результат сборки:

<meta property="og:image" content="https://example.com/img/facebook_1200x630.jpg" />

То, что я считаю, то, что вам нужно.

0 голосов
/ 26 апреля 2018

Добавить

"homepage": "https://example.com/myapp",

вместо

"homepage": "https://example.com",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...