【发布时间】:2021-10-28 04:30:09
【问题描述】:
我当前的静态文件配置有点问题。
当前Settings.py
#...
GOOGLE_APPLICATION_CREDENTIALS = BASE_DIR / 'Cloud_Storage_Secrets/model-calling-323507-96957393f399.json'
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATICFILES_DIRS = [
BASE_DIR / 'static',
BASE_DIR / 'build/static' #React Frontend Files
]
MEDIA_ROOT = BASE_DIR / 'static/images'
STATIC_ROOT = BASE_DIR / 'staticfiles'
GS_BUCKET_NAME = 'GS_BUCKET_NAME'
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
GOOGLE_APPLICATION_CREDENTIALS
)
#...
现在的问题是,当 Django 提供这些文件时,React 前端构建也被视为静态文件。在手动从npm run build 命令创建构建后,它在本地工作正常。但是,当我使用两个单独的引擎将其推送到生产环境中时,一个 Node.js 用于 React,另一个是 Python 用于 Heroku 上的 Django 应用程序,然后 Django 尝试从 GS_BUCKET 获取构建文件,为媒体文件和静态文件配置。所以Django 不会选择前端构建文件。
所以我正在尝试进行两种配置。 Google Cloud Storage 仅适用于媒体文件,但静态文件应作为默认绕过 Google Cloud Storage。
那么如何使它成为可能。请向我建议任何使它们分开的方法。或者如何绕过 Google Cloud Storage 仅针对媒体文件的配置。谢谢!
如果您需要更多说明,请将其注释掉,然后我也会添加更多详细信息。
【问题讨论】:
标签: python reactjs django google-cloud-storage