Как обслуживать файлы WASM в Django
Я скомпилировал свой C-файл в wasm, используя:
emcc main.c -s USE_SDL=2 -O3 -s WASM=1 -o main.js
Я использую WASM только для манипулирования холстом. Нет никакого JS кода, кроме js кода "glue".
Теперь у меня есть каталог (вне Django, просто где-то в папке Documents) с этими файлами:
- home.hml
- main.c
- main.js
- main.wasm
Который я могу обслуживать, используя любой веб-сервер, например
python3 -m http.server 8000 --bind 127.0.0.1
И просмотрите анимацию в браузере. И это работает. Пока никаких проблем.
Сейчас я хочу обслуживать home.html из Django. Мой URLs.py имеет:
path('', views.home, name='home'),
и views.py имеет:
def home(request):
context = {}
return render(request, 'app/home.html', context)
Я скопировал файл home.html в app/templates/app
Затем я скопировал файл main.js в app/static/app
Затем я изменил файл home.html, заменив его на:
<script src="main.js"></script>
With
<script src="{% static 'app/main.js' %}" type="text/javascript"></script>
Я не знаю, что делать с файлом main.wasm. Должен ли он также находиться в папке static или в корне проекта? Нужно ли мне добавить явный импорт для этого? Как я могу заставить мой home.html вести себя так же, как и при использовании simplehttpserver, но при обслуживании из Django?
Обратите внимание, что все элементы DOM в файле home.html отображаются правильно, за исключением холста. Таким образом, я относительно уверен, что все настроено правильно, за исключением того, что main.wasm недоступен.
Проверьте HTTP-запросы, сделанные браузером, на вкладке Сеть в инструментах разработчика браузера. Возможно, путь в URL неверен или Django возвращает неверный Content-Type.