<p>看起来您可能需要在settings.py中定义的变量<code>STATICFILES_DIRS</code>,该变量应该包括保存<code>logo.png</code>的目录的位置。</p>
<p>默认情况下,Django只在每个app</em>内的<code>static</code>目录中查找静态文件。如果您在任何应用程序之外有一个静态文件,它不会被<code>collectstatic</code>自动获取。</p>
<p>见<a href="https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-STATICFILES_DIRS" rel="nofollow">https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-STATICFILES_DIRS</a></p>
<hr/>
<p><strong>有关静态文件的混淆</strong></p>
<p>Django和静态文件总是有很多混淆。我认为这种混乱来自于这样一个事实:Django在<strong>production</strong>中处理静态文件没有任何意义,但是在学习使用Django时以及在最初开发时使用它似乎是很自然的。</p>
<p>Django不能提供静态文件的原因是Django是一个呈现动态响应的框架静态“文件不是动态的:它们不会改变。因此,启动一个调用所有Django机器的Python应用程序来查找并返回一个没有动态内容的文件是一个巨大的资源浪费。</p>
<p><strong>静态文件:web服务器的工作</p>
<p>有一些非常擅长服务静态文件的东西:web服务器本身(比如Apache、nginx等)。这就是他们的初衷。webserver可以运行Python/Django应用程序<em>或</em>它只需找到一个文件并将其发送回去,因此通常通过如下方式配置webserver(在伪服务器语言中):</p>
<blockquote>
<ul>
<li><p>When someone accesses the path <code>/static/</code> let them access the files in
the following directory: <code>/var/www/static/</code>. </p></li>
<li><p>When someone accesses the
path <code>/</code>, spin up this Python application that lives over here:
<code>/var/www/django-app</code>.</p></li>
</ul>
</blockquote>
<p><strong>Django静态文件工具</p>
<p>因此,Django附带了一些管理静态文件的帮助工具,以便您的实际服务器可以为它们提供服务。</p>
<p>这些工具如下(在<code>settings.py</code>中定义):</p>
<ul>
<li><code>STATIC_URL</code>:服务器将为您的
静态文件。这只是为了当您使用<code>static</code>模板标记时,Django知道如何<code>urlreverse</code>它。换言之,这只是将<code>{% static "..." %}</code>转换为<code>/static/...</code>的一种便捷方式。</li>
<li><code>STATIC_ROOT</code>:服务器上的位置(或
云某处),Django<em>将把静态文件复制到其中,因此
你的服务器可以为他们服务。当你运行
<code>collectstatic</code>。</li>
<li><code>STATICFILES_DIRS</code>:任何额外的目录Django
应该在运行<code>collectstatic</code>时查找静态文件。由
默认Django只在每个应用程序的目录中查找<code>static</code>
目录(就像<code>templates</code>)。</li>
</ul>
<p><strong>开发中的静态文件</strong></p>
<p>好吧,但这对开发没有多大帮助,因为您可能正在使用Django的<code>runserver</code>命令。您没有正在运行的服务器将为静态文件提供服务器。</p>
<p>因此,在这种情况下,您可以让Django也为您提供静态文件服务器,因为您正在开发应用程序,不想运行单独的服务器。</p>
<p>当<code>DEBUG=True</code>时,<a href="https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve" rel="nofollow">is a view</a>会自动接收并提供静态文件。另外,这也是为什么有人可能使用以下内容:</p>
<pre><code>from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
</code></pre>