reactjs - nginx 同时提供 django 静态文件和反应静态文件
问题描述
我最近试图阻止 nginx 连接我基于 django 的后端和基于反应的前端。这是我的 nginx 配置文件:
upstream api {
server backend:8000;
}
server {
listen 8080;
location /api/ {
uwsgi_pass backend:8000;
include /etc/nginx/uwsgi_params;
}
location /admin/ {
uwsgi_pass backend:8000;
include /etc/nginx/uwsgi_params;
}
# ignore cache frontend
location ~* (service-worker\.js)$ {
add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
expires off;
proxy_no_cache 1;
}
location / {
root /var/www/frontend;
try_files $uri /index.html;
}
location /static {
alias /vol/static;
}
location /static/rest_framework/ {
alias /vol/static;
}
}
但是,问题是我的 manage.py collect static 会将 django 静态文件放入其中/vol/static
,但是,我的 react 构建在其中,/var/www/frontend/
因此当我尝试访问默认 / url 时,它返回一个空白页面。但是,如果我删除
location /static {
alias /vol/static;
}
location /static/rest_framework/ {
alias /vol/static;
}
它将在没有任何 CSS 的情况下为我的 django 管理页面提供服务。如何在不将两个静态文件放在同一目录中的情况下轻松解决此问题?
解决方案
推荐阅读
- windows-community-toolkit - 侧面加载时注视交互不起作用
- c# - VSTS 构建管道:连接到 Azure Key Vault 的测试失败
- python - SessionNotCreatedException:消息:无法创建新服务:通过 Python 使用 ChromeDriver 和 SeleniumGrid 的 ChromeDriverService
- android - 用于响应式网站的 Android 应用程序在真实手机上加载时崩溃
- javascript - JavaScript纸牌游戏,如何比较两个字符串中的纸牌?
- java - 在tomcat html输出中重写URL
- c++ - G_SIGNAL 使用多个参数
- sql - 表单的 RecordSource 问题:“此记录集不可更新”
- http - Kotlin Fuel.download 创建一个空文件
- c - 如何复制 char 指针数组的值?