【问题标题】:django static file - 404django 静态文件 - 404
【发布时间】:2020-10-17 13:36:39
【问题描述】:

首先:我知道有很多用户问题,但他们都没有解决我的问题,所以我希望在这里最好。我的 django 无法访问静态文件,我得到了 404。

基础设施:安装了 django 和 apache 反向代理到 localhost:8000 的公共可访问服务器。 (它不是 apache 问题。当本地转发 8000 端口时,此问题仍然存在)。

目录列表:

/var/twirps
.
|-- assets
|   |-- admin
|   |   |-- css
|   |   |   `-- vendor
|   |   |       `-- select2
|   |   |-- fonts
|   |   |-- img
|   |   |   `-- gis
|   |   `-- js
|   |       |-- admin
|   |       `-- vendor
|   |           |-- jquery
|   |           |-- select2
|   |           |   `-- i18n
|   |           `-- xregexp
|   |-- css
|   |   `-- images
|   |-- js
|   |-- sass
|   |   `-- libs
|   `-- webfonts
|-- blockmatrix
|   |-- __pycache__
|   `-- migrations
|-- static
|   |-- css
|   |   `-- images
|   |-- js
|   |-- sass
|   |   `-- libs
|   `-- webfonts
|-- templates
`-- twirps
    `-- __pycache__

settings.py:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
        ]
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')

我的静态文件声明 index.html(在模板文件夹中):

{% load static %}
<link rel="stylesheet" href="{% static 'static/css/main.css' %}" />

我也已经做了python3 manage.py collectstatic

静态文件仍然无法加载,我在 django 服务器日志中看到 404 错误。请在这里帮助我。

【问题讨论】:

    标签: python python-3.x django django-templates


    【解决方案1】:

    您需要发布您的 Apache 配置以了解您如何提供静态文件。为了从 Apache 提供静态文件,您在生产中进行了一些配置,并且您没有在问题中提及是否这样做。你应该直接从 Django 提供静态文件,除非你处于开发模式(即DEBUG=True),这是你不应该的。

    来自文档:

    从同一台服务器为网站和静态文件提供服务如果您 想要从已经存在的同一台服务器上提供静态文件 为您的网站提供服务,该过程可能类似于:

    (1) 将您的代码推送到部署服务器。

    (2) 在服务器上运行collectstatic,将所有静态文件复制到STATIC_ROOT中。

    (3) 将您的网络服务器配置为在 URL STATIC_URL 下提供 STATIC_ROOT 中的文件。

    文档:

    https://docs.djangoproject.com/en/3.0/howto/static-files/deployment/#serving-static-files-in-production

    https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/modwsgi/#serving-files

    【讨论】:

    • 但正如我所说,如果没有 Apache,它甚至无法工作......我现在不通过 apache 提供我的静态文件。这是怎么做的,为什么没有 apache 就不能工作?
    • 你在开发中没有服务器吗?我不清楚你在说什么。
    • 我前面有一个服务器。但是,如果我本地转发端口 8000,我可以直接访问 django,它仍然无法正常工作。
    • 您是在服务器上使用 WSGI 或 ASGI 还是在开发模式下运行 Django 应用程序?它不打算在服务器后面的开发模式下运行。
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2017-06-05
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多