Python Django无法加载包含静态文件的简单静态页面
它是一个简单的静态html文件,只有一个图像作为html中的静态文件。我遵循了Django文档中提供的所有步骤,Python Django无法加载包含静态文件的简单静态页面,python,html,django,static,Python,Html,Django,Static,它是一个简单的静态html文件,只有一个图像作为html中的静态文件。我遵循了Django文档中提供的所有步骤,collectstatic命令运行时没有任何错误 项目文件夹结构如下所示 settings.py文件 STATIC_URL = '/static/' STATICFILES_DIR = [ os.path.join(BASE_DIR, 'static')] STATIC_ROOT = os.path.join(BASE_DIR, 'assets') DEBUG = Tru
collectstatic
命令运行时没有任何错误
项目文件夹结构如下所示
settings.py文件
STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static')]
STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
DEBUG = True
home.html-未加载图像的文件
{%load static%}
<!DOCTYPE html>
<html >
<head>
<title>home.html</title>
<h1>This is a test file</h1>
</head>
<body>
<img src="{% static 'images/test.png' %}">
</body>
</html>
{%load static%}
home.html
这是一个测试文件
输出:
我试过以下方法
collectstatic
命令没有结果,会是什么问题?请帮助我解决此问题。您有
静态ROOT=os.path.join(BASE\u DIR,'assets')
,而您似乎已经将文件收集到os.path.join(BASE\u DIR,'STATIC')
,这是一个更典型的位置。您应该将STATIC\u ROOT
更改为指向静态文件夹,以便Django知道从何处提供这些文件:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
您可以在中看到这一点,请在您的设置中尝试
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
def get_success_url(self, request, user):
return (get_success_url)
并从您的URL.py添加此内容
urlpatterns = [
......
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns +=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在设置中将STATICFILES\u DIR替换为STATICFILES\u DIRS。这里的主要错误是pySTATICFILES\u DIR。
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
def get_success_url(self, request, user):
return (get_success_url)
用STATICFILES\u DIRS替换它
这应该能解决问题。这奏效了!我没有怀疑“STATICFILES\u DIR”打字错误,因为“collectstatic”没有任何错误。感谢您确定问题所在。