Python Django上的静态文件问题
我从github克隆了一个项目,在那里他们对静态文件使用了一些“特殊配置”,使用“/static/”、“/static\u in_env/”,我不太明白他们为什么这样做,所以我决定将其更改为大多数文档或教程中显示的配置,即以下配置Python Django上的静态文件问题,python,django,static,Python,Django,Static,我从github克隆了一个项目,在那里他们对静态文件使用了一些“特殊配置”,使用“/static/”、“/static\u in_env/”,我不太明白他们为什么这样做,所以我决定将其更改为大多数文档或教程中显示的配置,即以下配置 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = '/static/' MEDIA_URL = '/media/' STATICFILES_DIRS
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')
只是为了提供一些额外的信息:
在模板内部,除其他外,我有:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
该网站看起来读起来还行(ish),因为我的问题是它呈现了模板,但没有css
我还安装了内部应用程序“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:31265]日志:警告-未找到:/static/css/style.default.css
[17/Jul/2020 04:33:31]“GET/static/css/style.default.css HTTP/1.1”40477
我还尝试了chmod774这个文件夹,并且
它回来了
未找到在此服务器上找不到请求的资源 最后一件事,我记得我尝试过一个命令,但现在找不到,因为我从某个论坛复制了一个我找不到的命令,但这应该是为了让你知道django实际查找文件的地址, 我只是确定命令中包含了verbose这个词。当我执行它时,django似乎正在读取django安装中的静态文件或venv中的某些内容(尽管我不完全确定,而且由于我还没有找到该命令,如果有人能告诉我,我将不胜感激,我无法确认) 我已经没有主意了,我可以重新启动项目或者再试一次,但这让我很痛苦,因为我在想,到底出了什么问题,我已经仔细检查了每一个部件,但仍然不起作用
- 静态文件夹与模板文件夹和资产以及应用程序处于同一级别(与manage.py相同)
从django.conf.url.static导入静态
urlpatterns+=静态(settings.static\u URL,document\u root=settings.static\u root)
听起来好像您正试图通过URL访问静态文件
您提到的“智能静态文件”可能使用了第三方资源,如AWS,它提供静态文件。如果要转到localhost:8000/static/file.ext
尝试将其添加到URL.py的底部:
来自django.conf导入设置的
从django.conf.url.static导入静态
urlpatterns+=静态(settings.static\u URL,document\u root=settings.static\u root)
谢谢,这就是问题所在,我在开发中将debug设置为false(用于试验),并将那段代码放在url.py中,如果debug:那么它就不工作了。谢谢,这就是问题所在,我在开发中将debug设置为false(用于试验),并将那段代码放在url.py中,如果debug:那么它就不工作了。