Как обслуживать статические файлы на нескольких конечных точках? - PullRequest
0 голосов
/ 12 мая 2019

Я обслуживаю 2 приложения React с одним бэкэндом Python. Прямо сейчас я обслуживаю index.html с помощью HttpsREsponse, и я включил 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

1 Ответ

0 голосов
/ 12 мая 2019

После комментария Бурхана Халида я взглянул на свой статический сервер и решил обслуживать эти файлы прямо из каталога /build, не копируя их в /static и не передавая их оттуда.

...