通过 django 提供静态文件时找不到页面

Posted

技术标签:

【中文标题】通过 django 提供静态文件时找不到页面【英文标题】:page not found when serving static files via django 【发布时间】:2017-06-30 03:08:18 【问题描述】:

所以在 settings.py 我有

STATIC_URL = '/static/'

还有

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp.apps.MyappConfig'
]

因此你可以看到 django.contrib.staticfiles 在那里,而且 Debug = True

在我的应用程序目录中,我有一个文件存在于该路径中

myapp/static/css/myapp.css

但是,当我去http://localhost/myapp/static/css/myapp.css

它最终返回

Page not found (404)
Request Method:     GET

我做错了什么,如何让 django 正确地提供静态文件?

【问题讨论】:

【参考方案1】:

将其包含在您的项目/urls.py 中

from django.conf import settings

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

【讨论】:

【参考方案2】:

在您的设置中使用选项STATICFILES_DIRS。

一个例子:

# settings.py
...
STATICFILES_DIRS = [
    "/path/to/your/static/files/folder",
]
...

在您的模板中,使用静态模板标签,如

# some_page.html
...
% load static %
<img src="% static "my_app/example.jpg" %" />
...

或硬编码

# some_page.html
...
<img src="/static/my_app/example.jpg" />
...

【讨论】:

以上是关于通过 django 提供静态文件时找不到页面的主要内容,如果未能解决你的问题,请参考以下文章

django中怎么载入css等静态文件

Django 在 debug = False 时找不到我的媒体文件夹

django中怎么载入css等静态文件

如何通过 HTTPS 提供 Django 静态文件?

django 改了静态文件但是页面没有变

django -静态文件能加载进入,但是在页面上却显示不出来