Как обслуживать файлы 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.

Вернуться на верх