2015-12-06 3 views
0

Итак, у меня есть следующая среда; django 1.8. apache на ubuntu 14 с mod_wsgi и mod x-sendfile включен.моя гиперссылка, сгенерированная в django, не работает

У меня есть очень простое представление на сервер файлов следующим образом:

def foo(request, filename): 
    response = HttpResponse() 
    response['Content-Disposition'] = 'attachment; filename={0}'.format(filename) 
    response['X-Sendfile'] = "/home/amir/DjV/Files/{0}".format(filename) 
    return response 

и вот мой URLconf относительно зрения:

url(r'^foo/(.+)/$', foo) 

я написал фрагмент кода, который генерирует абсолютный путь к файлы, которые будут представлены в списке загрузки. Сгенерированные пути работают нормально, если я ввожу их в браузер; но если я использую их в качестве гиперссылок, при нажатии на нее она переходит на пустую страницу. Для examlple здесь один URL, который порождается сниппета я говорил:

http://192.168.43.6:8000/foo/uuid.txt 

он отлично работает, и я получаю, чтобы загрузить uuid.txt, но когда я положил его в шаблон Джанго следующим образом, это Безразлично» т работы:

<a href="192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a> 

Мой вопрос заключается в том: почему моя ссылка отлично работает при вводе вручную, но не тогда, когда используется в качестве гиперссылки? Может быть, это из-за локального адреса? Как я могу это исправить?

ответ

0

Вы должны указать протокол внутри шаблона, делая такие вещи:

<a href="http://192.168.43.6:8000/foo/uuid.txt">192.168.43.6:8000/foo/uuid.txt </a> 

Однако, вы не должны жесткий код ссылки в этом пути в специальном нет, если они обрабатываются внутри приложения Django. Проверьте {% url%} шаблон, может ли это быть полезным для вас

+0

Большое спасибо; Я определенно рассмотрю тег url. – Miind

Смежные вопросы