Рендеринг загруженных пользователем html5/js игр в шаблоне django
Я уверен, что есть очень простой способ решить мою проблему, но я не достаточно опытен, чтобы придумать что-нибудь полезное. У меня есть веб-сайт, на котором я хочу добавить html5/js-игры, на которых я играю. Это будет очень простой сайт; шаблон, который действует как каталог со всеми играми в нем, и шаблон, в котором я отображаю выбранную игру. Пока все просто.
Когда я заканчиваю игру, я хочу загрузить ее на сайт. Я делаю это, загружая zip игры со страницей администратора. Почтовый индекс распаковывается и хранится в папке мультимедиа. Что-то вроде: "media/id_of_game/game_folder"
Типичная игра состоит из html-страницы, нескольких файлов javascript и нескольких изображений.
Вот где у меня проблема. Как мне отрендерить эту игру внутри моего шаблона django? Я пытался, но относительные пути, присущие самой игре, нарушены.
URL моего шаблона выглядит следующим образом: пример
- 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, чтобы добиться того же самого?