Есть много вопросов по этой теме, которые заключаются в том, что введенный URL-адрес и обновление не работают при использовании реакции на работу, но я пытаюсь в течение длительного времени и по какой-то причине это не работает.
Я использую React с Spring boot и tomcat. Я использую BrowserRouter для маршрутизации. Я развертываю приложение на AWS упругих бобовых. При развертывании я делаю следующее:
запустите npm run build
, затем скопируйте полученные файлы из папки сборки в папку webContent, затем экспортируйте проект как файл war и разверните его в aws.
Как я понял, основным решением для этого является сервер файла index.html для всех запросов, и я попытался сделать следующее:
- добавить следующее в /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /var/lib/tomcat8/webapps/ROOT/
ServerName domain.elasticbeanstalk.com
AliasMatch ^/(.*)$ /var/lib/tomcat8/webapps/ROOT/index.html
<Directory "/var/lib/tomcat8/webapps/ROOT">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^/(.*)$ - [L]
RewriteRule ^/(.*)$ /index.html [L]
</Directory>
</VirtualHost>
Из вопросов, которые я прочитал, предлагается использовать / var / www / html, но я не понял, почему. Я пытался использовать его, копируя все из ROOT, но также не получилось.
Я пробовал много вариантов кода, который я поместил в файл конфигурации.
При настройке я получаю ошибку
SyntaxError: expected expression, got '<'
.
На firefox я получаю The script from “http://awsdomain.com/static/js/2.7322c0fb.chunk.js” was loaded even though its MIME type (“”) is not a valid JavaScript MIME type.
и в chrome я получаю ту же ошибку, но с css-файлами, а не с js.
На данный момент, я предполагаю, что обслуживание index.html работает, но есть другая проблема, что сервер пытается проанализировать некоторые файлы js или css, такие как html или текст, которые не будут работать. В любом случае, я понятия не имею, как сказать браузеру, чтобы он правильно анализировал их и почему он анализирует их без ошибок обычным способом (без решения проблемы маршрутизации)?
Я пытался добавить атрибут type для тегов link и script в index.html, но не получилось.
Есть много вещей, которые мне надоели, особенно в файлах конфигурации на экземпляре aws, но было бы сложно все это здесь поместить. Я надеюсь из комментариев получить корень проблем, а затем я могу дать любую недостающую информацию.