如何让 django 从构建的 React 项目加载静态文件

问题描述 投票:0回答:1

这是我的项目结构,我已经用Django和React完成了后端和前端。为了托管我的项目,我构建了 React 并加载“index.html”作为模板,而构建的 CSS 和 JS 用作静态文件。

后端 ----后端 - - 根据 - - 前端 - - 建造 - - 静止的 ----CSS ----js - - 媒体 索引.html // 其他文件,例如 favicons 和 JSON ----节点模块 - - 民众 ----源代码 ----静态文件 ----db.sqlite3 -----管理.py

这是我处理静态文件的

settings.py

STATIC_URL = '/static/'
MEDIA_URL = '/media/'

STATICFILES_DIRS = [
    BASE_DIR / 'frontend/build/static/css',
    BASE_DIR / 'frontend/build/static/js',
    BASE_DIR / 'frontend/build/static/media',
]

MEDIA_ROOT = BASE_DIR / 'static/images'
STATIC_ROOT = BASE_DIR / 'staticfiles'

当我设置 DEBUG = True 时,站点在端口 8000 上运行,但是图像需要重新上传到数据库,因为在我构建 React 项目后找不到这些图像。当我设置 DEBUG = False 时,我在控制台中收到以下错误:

Refused to execute script from 'http://127.0.0.1:8000/static/main.1d564988.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

CSS 文件也会出现同样的问题。我尝试托管该网站,但无法加载静态文件。

reactjs django web static react-fullstack
1个回答
0
投票

尝试这种格式

STATICFILES_DIRS = [
    BASE_DIR / 'build/static'
]

这是我的,工作正常

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'build/static')
]
© www.soinside.com 2019 - 2024. All rights reserved.