【发布时间】:2013-01-02 16:48:15
【问题描述】:
我正在运行一个 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
是否与测试服务器的启动方式有关?
【问题讨论】: