问题描述: 在Docker中使用Angular CLI代理+ Django后端时,无法正常工作。
解决方法:
确保在Docker中正确设置了Angular CLI代理。
--proxy-config
参数,指定代理配置文件的路径。例如:CMD ng serve --proxy-config proxy.conf.json
proxy.conf.json
的文件,用于配置代理。示例配置如下:{
"/api/*": {
"target": "http://django-backend:8000",
"secure": false,
"logLevel": "debug"
}
}
这里的target
是Django后端的地址(容器名称为django-backend
,端口为8000),/api/*
表示所有以/api/开头的请求都会被代理到Django后端。
确保Docker容器内的网络配置正确。
version: "3"
services:
angular-frontend:
build:
context: .
dockerfile: Dockerfile
ports:
- "4200:4200"
networks:
- my-network
django-backend:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
networks:
- my-network
networks:
my-network:
确保Django后端的CORS设置正确。
settings.py
文件中,添加CORS相关配置。示例配置如下:INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL = True
构建和运行Docker容器。
docker-compose up --build
http://localhost:4200
,确保能够正常访问Django后端的API接口。通过以上步骤,应该能够解决在Docker中使用Angular CLI代理+ Django后端无法工作的问题。