1

我确信有一种非常简单的方法可以解决我的问题,但我没有足够的经验来思考任何有用的东西。我有一个网站,我希望能够在上面添加我制作的 html5/js 游戏。这将是一个非常简单的网站;一个模板,它充当一个包含所有游戏的目录,以及一个用于渲染所选游戏的模板。到目前为止,这很简单。

当我完成游戏时,我想将其上传到网站。我通过在管理页面上传游戏的 zip 来做到这一点。zip 解压缩并存储在媒体文件夹中。类似于:“media/id_of_game/game_folder”

一个典型的游戏由一个 html 页面、几个 javascript 文件和一些图像组成。

这就是我遇到问题的地方。如何在我的 django 模板中渲染这个游戏?我已经尝试过,但是游戏本身固有的相对路径被破坏了。

我的模板网址如下: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 大师!希望你能帮助我:)

4

1 回答 1

0

我终于找到了解决我的问题的方法。

我已将此添加到 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 的设置以实现相同的目的?

于 2014-02-12T22:36:40.077 回答