我正在运行一个 django 1.4.1 应用程序。
我没有意识到仅仅django.contrib.staticfiles
在INSTALLED_APPS
你的设置中加入就足以在settings.DEBUG
为 True 时获得静态文件,也就是说,你不必手动向你的 urls 文件中添加任何东西。
我还注意到这绕过了 django 中间件。有谁知道如何或为什么会发生这种情况?
我刚刚创建了一个空白的新项目,我的views.py:
from django.http import HttpResponse
def index(request):
html = '<html><body>Logo: <img src="/static/logo.gif"></body></html>'
return HttpResponse(html)
我的 urls.py:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^$', 'testapp.views.index', name='home'),
)
我的 settings.py 指定了一个目录来查找静态文件,并且还添加了以下内容:
MIDDLEWARE_CLASSES = (
'testapp.middleware.TestMiddleware',
...
)
使用这个中间件:
from __future__ import print_function
class TestMiddleware(object):
def process_request(self, request):
print("[REQUEST]", request.path)
当我提出请求时,会打印出来:
[REQUEST] /
[18/Jan/2013 15:30:27] "GET / HTTP/1.1" 200 60
[18/Jan/2013 15:30:27] "GET /static/logo.gif HTTP/1.1" 200 2190
[REQUEST] /favicon.ico
这与测试服务器的启动方式有关吗?