2009-12-20 2 views
0

Я пытаюсь перенаправить на swf-файл, потому что мне нужно вставить это в fb: swf, который хочет его абсолютный путь. Когда я обрабатываю swf в URL-адресе, это не работает.Django перенаправление на swf

В url.py

(r'^flash/','lastproject.yofacebook.flashtest.flash'), 

В flahstest.flash

def flash(request): 
return render_to_response('as3.swf') 

Я хочу, чтобы открыть SWF на эту ссылку

http://testapp.varheroes.com/flash/ 

ФБ: SWF

<fb:swf 
    swfbgcolor="ffffff" 
    swfsrc='http://testapp.varheroes.com/flash/' 
    width='620' height='530' /> 

Я получаю ошибку

'utf8' codec can't decode bytes in position 5-6: invalid data 
+0

http: \\ testapp.varheroes.com \ flash \? Вы имеете в виду вперед/слэш? – miku

+0

Какой тип MIME вы возвращаете с ответом? Похоже, что это может не соответствовать test/html. Просто мысль. –

ответ

1

render_to_response используется для отображения шаблона и отправить его в качестве ответа. Я не думаю, что ваш файл SWF шаблон, так что вы должны просто вернуть его непосредственно:

return HttpResponse(open('as3.swf')) 

Но на самом деле вы не должны посылать файл через Django вообще, он должен быть подан любым служит остальные ваши статические файлы (CSS, JS и т. д.).

+0

Дело в том, что Django обрабатывает все мои url. Мне просто нужно передать адрес swf в fb: swf (не открывать ('as3.swf')) открыть новое окно? –

+0

Открытие нового окна не имеет ничего общего с HttpResponse, это действие браузера. Даниэль прав - вы не должны обслуживать такие двоичные файлы, использовать apache nginx или любой веб-сервер, который вы используете, чтобы делать статическую службу. – kibitzer

+0

Если мой Django обслуживает все URL-адреса определенного префикса. Могу ли я вообще убежать со статической службой и обходить django url? –

1

Я хотел бы сохранить свой файл SWF в статическом каталоге и добавить шаблон URL-адрес для перенаправления вашего файла, например:

from django.views.generic.simple import redirect_to 

urlpatterns = patterns('', 

    ... 
    (r'^flash/', redirect_to, {'url': settings.STATIC_URL + 'as3.swf'}), 
    ... 
) 

Это перенаправляет, например,/вспышка/к STATIC_URL + as3.swf (например: /static/as3.swf) as3.swf должен находиться в вашем статическом каталоге.

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