我想将网站的后端和前端分开。 对于前端,我正在使用Angular。 对于后端,我正在使用Symfony。
要运行一切,我从php:7.1.8-apache
起使用Docker
后端确实可以运行,我可以从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: 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
当我在spa文件夹中使用命令ng serve
时。它显示正确的页面(欢迎页面)。
但是当我转到使用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.
在控制台中