2014-02-11 30 views
1

我相信有一個非常簡單的方法來解決我的問題,但我沒有足夠的經驗去思考任何有用的東西。我有一個網站,我希望能夠添加我製作的html5/js遊戲。這將是一個非常簡單的網站;一個模板,充當其中包含所有遊戲的目錄以及一個用於呈現所選遊戲的模板。到目前爲止,這很簡單。渲染用戶上傳的Django模板內的html5/js遊戲

當我完成一個遊戲,我想上傳到網站。我通過使用管理頁面上傳遊戲的zip來做到這一點。該zip解壓縮並存儲在媒體文件夾內。例如:「media/id_of_game/game_folder」

一個典型的遊戲包含一個html頁面,幾個javascript文件和一些圖片。

這是我遇到問題的地方。如何在我的django模板中渲染此遊戲?我已經嘗試過,但是遊戲本身固有的相對路徑被打破了。

我的模板網址如下:例如

  • 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高手!希望你能幫助我:)

回答

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的的設置來實現同樣的事情?