Запустите Angular SPA внутри Джанго

У нас был автономный сервер внешнего интерфейса, который только обслуживал статические файлы AngularJS. Для SEO мы хотим использовать такой сервис, как Prerender, и, следовательно, должны запустить сервер, который может маршрутизировать URL-адреса.
Мы планируем использовать бэкэнд Django с промежуточным ПО Prerender для этого (поскольку у нас есть сервер, на котором работает Python).

Я могу предоставить статический файл для всех URL, используя:

    urlpatterns += patterns('',
                    url(r'^$', 'django.views.static.serve',
                        kwargs={'path': 'index.html',
                                'document_root':settings.STATIC_ROOT}),
    )

Теперь мой вопрос:
1- Приложение Angular использует локальные пути, такие как статические файлы, такие как styles/f.css, какой самый простой способ его обслуживания (с маршрутизацией) через Django? Какие-нибудь альтернативы использованию статического ключевого слова Django везде?
2- Django не рекомендует обслуживать статические файлы напрямую. Итак, что бы вы использовали для обслуживания SPA через механизм приложений (с маршрутизацией)?

1 ответ

Я рекомендую использовать какой-то префикс URL (STATIC_URL), например "статический", чтобы четко различать запросы к вашим представлениям Django и вашим статическим файлам.

Чтобы обслуживать ваши статические активы, вы можете использовать белизну.

Если вам действительно нужно избежать префикса STATIC_URL, вы можете создать подкласс или адаптировать DjangoWhiteNoise и использовать вместо префикса STATIC_URL набор шаблонов префиксов URL, таких как "css", "js" и "img".

Другие вопросы по тегам