0

我试图重定向到一个 swf 文件,因为我需要将它嵌入到一个 fb:swf 中,它需要它的绝对路径。当我以某种方式处理 url 中的 swf 时,它不起作用。

在 url.py

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

在 flashtest.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
4

2 回答 2

1

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

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

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

于 2009-12-21T09:50:21.073 回答
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 应位于您的静态目录中。

于 2012-04-13T23:21:03.413 回答