Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django无法加载包含静态文件的简单静态页面_Python_Html_Django_Static - Fatal编程技术网

Python 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

它是一个简单的静态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 = 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。这里的主要错误是py

    STATICFILES\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”没有任何错误。感谢您确定问题所在。