Размещение приложения React на сервере Apache с использованием rhel7, но мой Javascript, похоже, не выполняется - PullRequest
0 голосов
/ 11 декабря 2019

Я пытаюсь разместить приложение реагирования на сервере apache и сталкиваюсь с классической проблемой с пустой белой страницей. Я просмотрел все посты, которые я могу найти по этой теме, но они, похоже, не являются той же проблемой, что и я.

Для простоты я удалил мои css-файлы из сборки,на всякий случай они еще больше усложняют ситуацию.

Я установил для своей домашней страницы значение "./" в моем package.json, а затем запустил npm run build в приложении.

Я копирую файлы в корень apache в / var / www / html (для простоты я удаляю их из папки сборки)

Я изменяю html, чтобы установитьjavascript вызывает следующее:

<script type='text/jsx' src='./var/www/html/static/foo.js'>

Я добавил в .htaccess файл на том же уровне, что и index.html, для связанных инструкций. Я выполнил

restorecon -r /var/www/html'

на один уровень ниже, чтобы восстановить правильное соединение.

Я обновил мой файл .config с помощью DocumentRoot '/ var / www / html' и оставил мой DirectoryIndex как index.html. Я также добавил некоторые дополнительные элементы (которые должны быть излишними) по ссылке в руководстве, которое я разместил выше

<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride All

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
ServerName localhost

Единственная важная «новая» вещь, которую я добавил, - создание локального сервера. Кто-то из reddit предложил это в другом сообщении, которое я нашел.

Когда я проверяю свою консоль, я вижу один запрос к http://localhost/, который возвращает мой html из index.js. Но я, похоже, не загружаю и не выполняю какой-либо из моих javascript с другой стороны, поэтому ничего не загружается.

У кого-нибудь есть идеи о том, что я делаю неправильно? Я даже не уверен, что является причиной проблемы в это время.

1 Ответ

0 голосов
/ 11 декабря 2019

У меня наконец-то все заработало! Я пишу это столько же для своего собственного назидания, сколько и для кого-либо еще.

Я установил домашнюю страницу приложения на «.»и удалил компонент имя_сервера из файла конфигурации. Я изменил html так, чтобы вместо путей с «./foo/bar» они читали «/ foo / bar». Затем я переместил компоненты сценария html-тега за пределы тела (под ним), и все заработало.

Я понятия не имею, почему это было так хлопотно - я просто предполагал, что React будетработать из коробки с чем-то вроде Apache - но это наконец-то, наконец-то сделано!

...