Django重定向到瑞士法郎

时间:2009-12-20 15:14:59

标签: django django-urls

我正在尝试重定向到swf文件,因为我需要在fb:swf中嵌入它想要它的绝对路径。当我在url中处理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/

fb: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

2 个答案:

答案 0 :(得分:1)

render_to_response用于呈现模板并将其作为响应发送。我不认为你的swf文件是模板,所以你应该直接返回它:

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

但实际上你根本不应该通过Django发送该文件,它应该由服务于其余静态文件(CSS,JS等)的任何服务提供。

答案 1 :(得分:1)

我会将你的swf文件保存在静态目录中并添加一个url模式以重定向到你的文件,例如:

from django.views.generic.simple import redirect_to

urlpatterns = patterns('',

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

这会重定向,例如/ flash /到STATIC_URL + as3.swf(例如:/static/as3.swf) as3.swf应该在您的静态目录中。