我正在为2个具有单个python后端的React应用程序提供服务。现在,我为HttpsREsponse服务index.html
,并且将build/static
包含在STATICFILES_DIRS中。因为这些文件的哈希值是前置的,所以可以将它们混在一起。但是我需要一种方法来服务build
内的所有那些文件,例如manifes.json
或favicon.ico
。为所有人创建一个View
似乎是一个糟糕的主意。我很愿意将app1/build
用作static/app1
,将app2/build
用作static/app2
。
我搜索了Django文档,发现了如何从多个位置收集静态信息以及有关在多个URL上托管它们的任何信息。
这是我现在的设置:
# settings.py
STATICFILES_DIRS = [
os.path.join(APP1_DIR, 'build', 'static'),
os.path.join(APP2_DIR, 'build', 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# urls.py
urlpatterns = [
url(r'^app1/manifest.json$', getStaticFileView(app='app1', 'manifest.json').as_view()),
url(r'^app1', getStaticFileView(app='app1', 'index.html').as_view()),
url(r'^app2/manifest.json$', getStaticFileView(app='app2', 'manifest.json').as_view()),
url(r'^app2', getStaticFileView(app='app2', 'index.html').as_view()),
]
我正在寻找这样的东西:
# settings.py
STATICFILES_MAPPING = [
(os.path.join(APP1_DIR, 'build', 'static'), 'static/app1'),
(os.path.join(APP2_DIR, 'build', 'static'), 'static/app2')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# urls.py
urlpatterns = [
url(r'^app1', getStaticFileView(app='app1', 'index.html').as_view()),
url(r'^app2', getStaticFileView(app='app2', 'index.html').as_view()),
]
感谢任何想法或指导。
编辑:我使用静态服务器为/static
提供了所有静态文件,但是我需要告诉django创建正确的/static
文件结构。不只是将所有内容都放在/static
文件夹中,而是要将某些内容放入/static/app1
和某些/static/app2
答案 0 :(得分:0)
在Burhan Khalid发表评论之后,我看了看我的静态服务器,并决定直接从/build
目录提供这些文件,而不将它们复制到/static
并从那里提供。