Скомпилированные статические файлы Django 2 Angular 6 всегда направляются в статическую папку - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть проект Django 2 + Angular 6. У меня есть процесс сборки, который перемещает мои скомпилированные файлы JS в статическую папку Django.

Однако, когда я перехожу по ссылке, скажем http://127.0.0.1:8000/#/upload,, браузер всегда перенаправляет меня на http://127.0.0.1:8000/static/my_project/#/upload.. Что происходит?

Я использую стратегию определения местоположения хэша. Моя страница все еще работает, но всякий раз, когда я обновляюсь по последнему URL-адресу или посещаю его напрямую, я получаю 404 ..

Мой urls.py файл выглядит так:

urlpatterns = [
    path('', IndexView.as_view()),
    path('admin/', admin.site.urls),
    path('api/v1/', include(router.urls)),
]

Первый шаблон URL соответствует IndexView, который является просто TemplateView с этим index.html:

{% load static from staticfiles %}
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <link rel="icon" type="image/x-icon" href="{% static 'favicon.ico' %}">
</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="{% static 'uploader/runtime.js' %}"></script>
<script type="text/javascript" src="{% static 'uploader/polyfills.js' %}"></script>
<script type="text/javascript" src="{% static 'uploader/styles.js' %}"></script>
<script type="text/javascript" src="{% static 'uploader/vendor.js' %}"></script>
<script type="text/javascript" src="{% static 'uploader/main.js' %}"></script>
</body>
</html>

1 Ответ

0 голосов
/ 02 ноября 2018

Хорошо, так что я разобрался ... Отправка для будущих читателей. Если вы на 100% уверены, что используете стратегию определения местоположения хэша и все работает, убедитесь, что у вас нет

<base href="/static/..."> в ваших <head> тегах (я удалил его в своем первоначальном вопросе в целях конфиденциальности ... возможно, следовало бы скрыть его вместо того, чтобы удалить его полностью ...

Это произошло потому, что я использовал следующую команду для сборки:

ng build --base-href /static/...

...