0

一开始一切都很好,但现在我遇到了一个问题,我的静态文件没有加载。我认为这是一个非常奇怪的问题,因为当它发生时我并没有真正触及任何可能对问题产生影响的东西。其他一切工作正常,我只是出于某种原因无法获取静态文件。我有时会收到一个 200 http 响应,试图像这样获取静态文件:

    [20/Aug/2020 16:12:51] "GET /order/checkout/ HTTP/1.1" 200 2029
    [20/Aug/2020 16:12:51] "GET /static/my_pizza_place/js/client.js HTTP/1.1" 200 2194
    [20/Aug/2020 16:12:51] "GET /static/css/master.css HTTP/1.1" 200 80
    [20/Aug/2020 16:12:51] "GET /static/css/global.css HTTP/1.1" 200 530

但它仍然没有将样式应用于我的 html 代码。不过,我通常只会在我的 client.js 文件上收到 304 http 响应。我觉得我已经尝试了几乎所有的东西,所以我希望你们能帮助我找出问题所在。

我的文件:

  • 设置.py
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
  • 基本的HTML
    <!DOCTYPE html>
    {% load static %}
    <html lang="en">
    <head>
        ...
    
        <link rel="stylesheet" href="{% static 'css/master.css' %}">
        <link rel="stylesheet" href="{% static 'css/global.css' %}">

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="..." crossorigin="anonymous">
        
        <script src="{% static 'my_pizza_place/js/client.js' %}" defer></script>
    </head>
    <body>
        <div class="container mycontent">
        {% block checkout %}
            
        {% endblock %}
        </div>
    </body>
    </html>
  • 索引.HTML
    {% extends 'base.html' %}
    {% block content %}
        ...
    {% endblock %}
  • URLS.PY - 在项目文件夹中
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('',views.HomePage.as_view(),name="home"),
        path('customer/',include('customer.urls', namespace='customer')),
        path('customer/',include('django.contrib.auth.urls')),
        path('order/',include('orders.urls',namespace='order'))
    ]
  • 意见.PY
    class HomePage(TemplateView):
        template_name = 'index.html'
  • 目录结构

    • 项目
    • 应用程序名称
    • 项目名称
    • 静止的
    • css
    • 全局.css
    • 大师.css
    • my_pizza_place
    • js
    • 客户端.js
    • 模板
    • base.html

如果您需要更多信息,请询问。提前致谢

4

1 回答 1

0

您的问题只是您应该在每个文件中添加 {% load static %} 。您不必在每个 .html 文件中链接 css 文件,但在每个文件中您应该加载静态文件。我以前遇到过这个问题,我相信这会为你解决,一定要在 {%block content %} 标签之前添加 {% load static %}。如果您需要进一步解释,请在下方评论。

于 2020-08-20T21:14:17.287 回答