Short brief:
I have some “non-django html apps” (a folder with a index.html, some .js files and a .css file) and I want to execute them in a django website without touching their code. How can I do it?
How can I make work inside django a non-django app (a folder with an index.html, some .js and .css) withou touching the code of the app?
Details:
I'm building a website with Django where i want to host some Construct3 games (it allows you to create HTML5 through a GUI).
When you export a Construct3 game to HTML it creates the following structure:
C3App
|_ appmanifest.json
|_ c2runtime.js
|_ data.js
|_ index.html
|_ offline.js
|_ offlineClient.js
|_ register-sw.js
|_ start.js
|_ style.css
|_ sw.js
|_ icons
| |_ icon1.png
|_ images
|_ image1.png
That is what I have tried:
- In my Django website I dropped the C3App in my template folder and created a view and called index.html. As a result i got a blank page with not found errors (404) for: appmanifest.json, icon1.png, style.css, c2runtime.js, start.js and register-sw.js. That is the external files called in index.html.
- As that dindn't work, I moved C3App to my static folder and I created a template with the same content of index.html but changing the references.
So I changed this lines:
<link rel="manifest" href="appmanifest.json" />
<link rel="icon" type="image/png" href="icons/icon-512.png" />
<link rel="stylesheet" href="style.css"/>
<script src="c2runtime.js"></script>
<script src="start.js"></script>
<script src="register-sw.js"></script>
To this others:
{% load static %}
<link rel="manifest" href="{% static 'games/C3App/appmanifest.json' %}" />
<link rel="icon" type="image/png" href="{% static 'games/C3App/icons/icon-512.png' %}" />
<link rel="stylesheet" href="{% static 'games/C3App/style.css' %}"/>
<script src="{% static 'games/C3App/c2runtime.js' %}"></script>
<script src="{% static 'games/C3App/start.js' %}"></script>
<script src="{% static 'games/C3App/register-sw.js' %}"></script>
After the changes I got 2 not found errors for: data.js and offlineClient.js. Two files called several times in c2runtime.js.
So c2runtime.js needs to be touched too. And this starts to become too dirty, I'm modifying more than one file, in more than one place. So every time I will want to make an update for a game I will need to modify all that files again. Sounds like stupid work and an easy way to introduce bugs.
The perfect scenario would be drag the folder (exported game) and work. Is there a way to do that posible? Any idea?
How can I make work inside django a non-django app (a folder with an index.html, some .js and .css) withou touching the code of the app?