Маршрут Localhost не может загрузить статический файл
В настоящее время я создаю докеризованное веб-приложение.
Он состоит из следующих элементов :
- React для фронтенда (с маршрутами, управляемыми react-router-dom)
- Django для бэкенда
- PostgreSQL для управления базой данных
- Nginx для обратного прокси
Я создал обратный прокси для back-end и front-end.
Я создал маршрут с именем /element/:id
(id
- это параметр URL), который позволяет мне просматривать информацию об объекте, хранящемся в базе данных.
К сожалению, когда я пытаюсь загрузить страницу localhost/element/1, на ней ничего не отображается.
В веб-консоли у меня есть ошибка, сообщающая мне Uncaught SyntaxError: Unexpected token '<'
для файла http://localhost/element/static/js/file.js
.
После проверки он загружает index.html
файл.
Домашняя страница работает без проблем.
Вот мой файл конфигурации nginx :
server{
include /etc/nginx/mime.types;
listen 80 default_server;
error_log /var/log/nginx/app-error.log info;
access_log /var/log/nginx/app.log main;
location /admin/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass http://admin-backend/admin/;
}
location /api/v1/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass http://admin-backend/api/v1/;
}
location /static/ {
alias /staticfiles/$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
}
Вот мой docker-compose.yaml
файл:
services:
frontend:
build:
context: ./
dockerfile: ./Dockerfile
ports:
- "80:80"
depends_on:
- backend
environment:
- PUBLIC_URL=127.0.0.1
volumes:
- static:/staticfiles
command: sh -c "cp -r /home/build/staticfiles/* /staticfiles ; nginx -g 'daemon off;'"
db:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
env_file:
- .env
ports:
- "5432:5432"
backend:
build: backend
command: sh -c "make generate_static_auto ; make migrate ; make run"
volumes:
- static:/staticfiles/
- ./backend:/backup
ports:
- "8000:8000"
depends_on:
- db
env_file:
- .env
volumes:
postgres_data:
static:
Внутренние страницы (например, страница admin
) не загружаются нормально (без js и css файла) также на локалхосте.
Есть ли у кого-нибудь ответ на мою проблему?