【发布时间】:2020-11-06 20:46:12
【问题描述】:
我从 github 克隆了一个项目,他们对静态文件使用了一些“特殊配置”,而不是使用 '/static/'、'/static_in_env/',我不太明白他们为什么这样做,所以我决定将其更改为大多数文档或教程中出现的内容,即以下配置。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'assets')]
STATIC_ROOT = os.path.join (BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
只是为了提供一些额外的信息:
在 TEMPLATES 里面,除了其他的,我还有:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
该网站似乎没问题(ish),因为我遇到的问题是它呈现模板但没有 css
我也有里面 INSTALLED_APPS 'django.contrib.staticfiles'
在左侧,(在 vscode 上)我有一个名为 static 的文件夹,它看起来比其他文件夹暗一些(我不知道这是什么意思)
我正在使用 python 3 创建的 venv, 当我跑步时
python --version
它告诉我我正在使用 python 3.6.9,这对我来说似乎没问题。
我也已经跑了
python manage.py collectstatic
以前也手动将所有静态文件复制到资产中,因此 collectstatic 命令将它们放在任何应该让程序读取它们的位置,它告诉我所有文件已被移动(或收集,我不确定它在 collectstatic 之后是什么意思)。
这是它找不到的众多静态文件之一(从字面上看,它似乎无法进入该文件夹)
[2020-07-17 04:33:31,265] 日志:警告 - 未找到:/static/css/style.default.css [17/Jul/2020 04:33:31]“GET /static/css/style.default.css HTTP/1.1”404 77
我也尝试了 chmod 774 那个文件夹,并且还去了http://127.0.0.1:8000/static 它返回
未找到
在此服务器上找不到请求的资源。
最后一件事,我记得曾经尝试过一个我现在找不到的命令,因为我从一些我找不到的论坛复制了,但据说那是为了让你知道 django 实际所在的地址寻找文件, 我只是确定该命令包含详细一词。当我执行它时,似乎 django 正在从 django 安装或 venv 中读取静态文件(尽管我不完全确定,因为我无法再次找到该命令,我如果有人能告诉我,我将不胜感激。)。
我的想法已经用完了,我可以重新启动项目或重试,但这让我很生气,因为我在想,有什么问题我已经仔细检查了每一个部分,但仍然没有工作。
- 静态文件夹与模板文件夹和资产以及应用程序处于同一级别(与 manage.py 相同)。
【问题讨论】: