在 django 模板中渲染用户上传的 html5/js 游戏
Posted
技术标签:
【中文标题】在 django 模板中渲染用户上传的 html5/js 游戏【英文标题】:Rendering user uploaded html5/js games inside a django template 【发布时间】:2014-03-10 00:52:03 【问题描述】:我确信有一种非常简单的方法可以解决我的问题,但我没有足够的经验去想任何有用的东西。我有一个网站,我希望能够在上面添加我制作的 html5/js 游戏。这将是一个非常简单的网站;一个模板,它充当一个包含所有游戏的目录,以及一个用于渲染所选游戏的模板。到目前为止,它很简单。
当我完成游戏后,我想将其上传到网站。我通过在管理页面上传游戏的 zip 来做到这一点。 zip 解压缩并存储在媒体文件夹中。类似于:“media/id_of_game/game_folder”
一个典型的游戏由一个 html 页面、几个 javascript 文件和一些图像组成。
这就是我的问题所在。如何在我的 django 模板中渲染这个游戏?我试过了,但是游戏本身固有的相对路径被破坏了。
我的模板url如下:example
mysite.com/demo/game-1/我的游戏需要的图像/javascript/.. 在示例中
mysite.com/media/id_of_game/game_folder/main.js mysite.com/media/id_of_game/game_folder/index.html mysite.com/media/id_of_game/game_folder/templates/random_image.png mysite.com/media/id_of_game/game_folder/js/awesome_game_library.js相对路径完全被破坏了。
非常感谢所有阅读到这里的 django 大师!希望你能帮助我:)
【问题讨论】:
【参考方案1】:我终于找到了解决问题的方法。
我已将此添加到 urls.py:
url(r'^demo/game/(?P<id>\d+)/(?P<path>.+)$', RedirectView.as_view(url='/media/demo/elements/%(id)s/%(path)s')),
这意味着当我访问这个时:
mysite.com/demo/game/1/my_awesome_picture.jpg我明白了:
mysite.com/media/demo/elements/1/my_awesome_picture.jpg可以像这样使用 django 的 urls.py 重定向文件还是应该更改 nginx 的设置以实现相同的效果?
【讨论】:
以上是关于在 django 模板中渲染用户上传的 html5/js 游戏的主要内容,如果未能解决你的问题,请参考以下文章