Возникает ошибка: Refused to execute script from 'test-func.js' because its MIME type ('text/html') is not executable
Возникает такая ошибка Refused to execute script from 'https://vlg-t-foss-dckr:7000/static/test-func.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled
при попытке запуска js-файла index.html.
Есть проект, который включает в себя бэкенд на Django и фронтенд на React.
Вэб-страница запускается через АПИ в ДЖанго, то есть через view.
Такое представление
class RenderReactClassApiView(generics.ListCreateAPIView):
def RenderReact(request, ):
req_path, *_ = request.path.split(';')
return render(request, 'index.html')
class Media:
js = ('test-func.js', 'static/test-func.js', './static/test-func.js', )
В index.html подключение скрипта выглядит так:
<body>
{% block scripts %}
<script type="text/javascript" charset="UTF-8" src="/home/test/app1/backend/templates/test-func.js"></script>
<script src="{% static 'test-func.js' %}"></script>
{% endblock %}
При переходе к странице АПИ https://localhost:7000/react в консоли выдаёт ошибку:
Refused to execute script from 'https://localhostr:7000/home/test/app1/backend/templates/test-func.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Возможно, я путь указываю не верно, хотя это абсолютный путь.
Не знаю насколько ответ будет полным и правильным, но мне помогли следующие решения: если запускать собранный проект на Реакте через Джанго, то нужно указать в index.html описание скрипта так:
{% load static %}
<script type="text/javascript" language="javascript" src="{% static 'frontend/main.js' %}"></script>
Если через Апач запускать, то есть Apache2 использовать как вэб-сервер для Джанго, то так:
{% load static %}
<script src="{% static 'frontend/main.js' %}"></script>
и в конфигах сайта Апача нужно указать путь к статике (static) примерно так:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.crt
SSLCertificateKeyFile /etc/apache2/ssl/cert.key
**Alias /static /home/test/ПУТЬ/static
<Directory /home/test/ПУТЬ/static>
Require all granted
</Directory>**
ServerAdmin webmaster@localhost
...
Если найду более лучшее решение, потом добавлю.