我有一个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)),
]
第一个网址格式与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>
答案 0 :(得分:1)
好,所以我知道了...发布给将来的读者。如果您100%确信正在使用哈希定位策略并且一切正常,那么请确保您没有
<base href="/static/...">
在您的<head>
标记中(出于保密目的,我在原始问题中将其删除了..可能应该将其掩盖而不是将其完全删除...
发生上述情况是因为我习惯于使用以下命令进行构建:
ng build --base-href /static/...