Я хочу разделить серверную часть и интерфейсную часть моего сайта. Для внешнего интерфейса я использую Angular. Для бэкэнда я использую Symfony.
Для запуска всего я использую Docker из php:7.1.8-apache
Бэкэнд работает, и я могу получить к нему доступ из http://localhost:8080/api/
Я искал что-то в интернете и перепробовал многие из них, которые мне подходятНо это не сработало.
Я попытался создать .htaccess и установить в нем следующий код:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ core/public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ spa/dist/spa/
Докер: docker-compose.yml:
version: '3'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: meeting-rooms-docker
ports:
- 8080:80
volumes:
- .:/srv/app
Dockerfile:
FROM php:7.1.8-apache
MAINTAINER Joey
COPY . /srv/app
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
RUN chown -R www-data:www-data /srv/app \
&& a2enmod rewrite
vhost.conf
<VirtualHost *:80>
DocumentRoot /srv/app/
<Directory "/srv/app/">
AllowOverride all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
моя структура файлов:
projectFile
- spa (Angular)
- Core (Symfony)
- .docker
.htaccess
при использовании команды ng serve
в папке spa,Он показывает правильную страницу (страницу приветствия). Но когда я перехожу на страницу, которая запускается с помощью Docker и выполняется .htaccess, он показывает эту ошибку: Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
в консоли