Обработка статических файлов с помощью Django/lighttpd

Я знаю, что уже есть вопрос (на самом деле еще несколько) по этому поводу, но ответы на них мне не очень помогли, так как я довольно новичок в lighttpd.

У меня есть одна папка, содержащая .pdf-файлы. При выполнении HttpResponseRedirect в расположение одного из этих файлов .pdf пользователь должен иметь возможность загрузить файл .pdf (или просмотреть его в браузере). Прямо сейчас Django просто перенаправляет на мою «домашнюю» html-страницу, не показывая никакого pdf-файла.

Каким-то образом мне придется сказать lighttpd, что Django больше не должен обрабатывать этот каталог. Это единственное, что мне нужно сделать? Если да, то как мне это сделать?


person ptikobj    schedule 24.04.2010    source источник


Ответы (1)


Вы видели раздел "http://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/#lighttpd-setup" в документах Джанго? Используя alias.url и url.rewrite-once, вы можете направлять запросы в свое приложение или папку, обслуживающую файлы:

alias.url = (
    "/pdfs" => "/path/to/my/pdfs",
)

url.rewrite-once = (
    "^(/pdfs.*)$" => "$1",
    "^(/.*)$" => "/mysite.fcgi$1",
)
person Reto Aebersold    schedule 24.04.2010
comment
это также работает для подпапок / pdf? Кстати, спасибо за ваш ответ. Когда я перехожу к /path/to/my/pdfs (другой путь для меня, конечно), django возвращает индексы каталогов, которые здесь не разрешены, поэтому кажется, что он все еще обрабатывает это. - person ptikobj; 24.04.2010
comment
Какой URL вы используете? 127.0.0.1:8000/pdfs/file1.pdf или что-то в этом роде. Вы уверены, что индексы каталога здесь запрещены? сообщение не от lighttpd? Возможно, вам нужно включить просмотр каталогов с помощью mod_dirlisting (http://redmine.lighttpd.net/wiki/1/Docs:ModDirlisting) - person Reto Aebersold; 24.04.2010
comment
ошибка была совершенно другой, я пропустил косую черту в аргументе HttpResponseRedirect... - person ptikobj; 26.04.2010