代码之家  ›  专栏  ›  技术社区  ›  7ball

Django 2 Angular 6编译的静态文件总是路由到静态文件夹

  •  0
  • 7ball  · 技术社区  · 6 年前

    我有一个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 回复  |  直到 6 年前
        1
  •  1
  •   7ball    6 年前

    好吧,我想出来了。。。为将来的读者发帖。如果你百分之百确定你正在使用散列位置策略并且一切正常,那么确保你没有

    <base href="/static/..."> 在你的 <head> 标签(出于保密目的,我在最初的问题中删除了它。。可能应该把它遮住而不是完全去掉。。。

    之所以出现上述情况,是因为我习惯使用以下命令来构建:

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