【问题标题】:404 Error for django serving static files. How to setup django to serve static files?django 提供静态文件的 404 错误。如何设置 django 来提供静态文件?
【发布时间】:2019-01-19 02:34:21
【问题描述】:

项目目录下的Settings.py文件:

我已经添加了以下内容:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

-> 在模板中

<script src="{% static "validateurl/home.js" %}"></script>

我在项目目录下有一个目录static。 home.js 在 static 下的 validateurl 目录下。

在模板 html 文件中使用以下引用 JS 文件:

请告知我在这里缺少什么。

以下错误:

【问题讨论】:

    标签: django django-views


    【解决方案1】:

    以下是配置您的 django 应用以提供静态文件以供 本地 开发的步骤。

    STATIC_ROOT 默认为无,因此您必须在设置中指定。确保您的 settings.py 中有类似的内容,这会告诉您的网络服务器在哪里可以找到并提供映射到 url 的静态文件。

    import os
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    

    其次还要指定您的 STATIC_URL 变量,因为它也默认为无。以下应该足够了。这将用于设置 urlpattern。

    STATIC_URL = '/static/'
    

    您需要有一个 url 模式,以便您的服务器知道哪个 url 对应于静态文件

    from django.conf.urls.static import static
    
    urlpatterns = [
        # ... the rest of your URLconf goes here ...
    ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    

    在设置中指定 STATICFILES_DIRS 变量。这样收集静态管理器就知道在哪里可以找到静态并将它们放在 STATIC_ROOT 中。这可以是指向不同目录的项目数组或元组。如果您没有其他目录,则可以为空

    STATICFILES_DIRS =  (os.path.join(BASE_DIR, 'pathtohomejsdirectory/'),)
    

    最后,确保你运行python manage.py collectstatic 这会将 STATICFILES_DIRS 中指定的所有文件复制到 /static/ (STATIC_ROOT) 目录以由 django 提供服务。

    生产中,您希望您的网络服务器/反向代理使用 nginx 或 apache 来提供文件。请参阅此处 django 文档here

    【讨论】:

    • 谢谢。我应该在哪里修改 urlpatterns?在主 urls.py 或应用程序 urls.py 文件中?我还需要为 js 文件运行 collectstatic 吗?到目前为止,我在项目中没有任何图像可显示。
    • 我会将它放在主 urls.py 中,因为它不仅是与应用相关的配置。
    • 好的,我做到了。仍然是同样的错误。 STATICFILES_DIRS = (os.path.join(BASE_DIR, 'validateurl/static/js/home.js'),) 这是正确的吗?我的 js 文件不在 app 目录中。
    • 进入 django shell。导入操作系统。复制并粘贴该代码。它是 home.js 的准确文件路径吗?你运行 python manage.py collectstatic 了吗?
    • 我运行了 python manage.py collectstatic,但是得到一个错误,系统找不到指定的路径。 django shell 中也有同样的错误!
    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2014-07-25
    • 2014-02-26
    • 2014-12-22
    • 2021-07-08
    • 2012-12-16
    相关资源
    最近更新 更多