在 Django 的中间件中忽略静态 url 的更优雅的方法?

More elegant way to ignore static urls in Middleware in Django?

中间件向导,

我想知道是否有更优雅的方法来确定请求是服务于我的自定义视图方法之一还是服务于静态内容等?

class MyMiddleware(object):
    def process_view(self, request, view_func, view_args, view_kwargs):
        if view_func.__name__ != 'serve':
            # do something here
        return None

如果您仅通过 STATIC_URL you can check request.path. (process_request)

提供静态文件
def process_request(request):
    if request.path.startswith(settings.STATIC_URL):
        # do something here

无论如何,这仅适用于开发过程,因为通常 apache 或 nginx 或某些 CDN 正在提供静态文件,这些请求永远不会到达您的 django 应用程序。