Веб-приложение Django было заблокировано из-за несоответствия типа MIME («текст/html»).Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Веб-приложение Django было заблокировано из-за несоответствия типа MIME («текст/html»).

Сообщение Anonymous »

Я пытаюсь создать веб-приложение с помощью Django с интерфейсом, созданным с помощью Vue.js.
Вот как организован мой каталог:

Код: Выделить всё

reco_system_app/urls.py
reco_system_app/settings.py

recommender/urls.py
recommender/views.py

vueapp/
static/
templates/

Код: Выделить всё

reco_system_app/urls.py
 — это

Код: Выделить всё

from django.contrib import admin
from recommender.views import home
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('recommender.urls')),
path('', home, name='home'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Код: Выделить всё

settings.py
имеет эти два набора

Код: Выделить всё

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

Код: Выделить всё

recommender/urls.py
 — это

Код: Выделить всё

from django.urls import path
from . import views

urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('movies/', views.get_random_movies, name='get_random_movies'),
path('recommend/', views.get_recommendations, name='get_recommendations'),
]
 — это

Код: Выделить всё

import random
from django.shortcuts import render
from django.views.generic import TemplateView
from django.http import JsonResponse

class IndexView(TemplateView):
template_name = 'index.html'

def home(request):
return render(request, "index.html")

def get_random_movies(request):
# Simulate a list of movies
sample_movies = ["The Shawshank Redemption", "The Godfather", "The Dark Knight", "Pulp Fiction", "The Lord of the Rings: The Return of the King"]
# Return a random sample of 5 movies
movies = random.sample(sample_movies, 3)
return JsonResponse({"movies": movies})

def get_recommendations(request):
# For simplicity, assume the movies are passed as a comma-separated string in the query parameter
selected_movies = request.GET.get('movies', '')
selected_movies_list = selected_movies.split(',')

# Simulate recommendations by shuffling the input movies
random.shuffle(selected_movies_list)
recommendations = selected_movies_list  # In a real scenario, you'd query VertexAI here

return JsonResponse({"recommendations": recommendations})
Мой интерфейс, созданный с помощью Vue.js, работает нормально. Когда я запускаю npm run ser, я могу видеть созданный мной интерфейс.
Я думаю, что сервер Django также работает, когда я запускаю управление Python .py runserver 0.0.0.0:8000, сервер работает, и я могу выполнить команду curl http://0.0.0.0:8000/api/movies/, чтобы получить список фильмов.
Но Django не открывает интерфейсную веб-страницу, которую я хочу видеть. Когда я проверяю страницу, я вижу ошибки,

Код: Выделить всё

The resource from “http://0.0.0.0:8000/js/app.d193da3f.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
The resource from “http://0.0.0.0:8000/js/chunk-vendors.5c940eb9.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
Я убедился, что файлы, которые я собираю с помощью npm run build, находятся в правильных местах. Но я все еще получаю сообщение об ошибке.
Я запускаю все это внутри контейнера докера с помощью

Код: Выделить всё

docker run -it --entrypoint /bin/sh -v ${PWD}:/workspace -p 8080:8080 -p 8000:8000 recommendation
Оба порта также представлены в Dockerfile. Что может пойти не так?
EDIT: DEBUG = True также установлен.

Подробнее здесь: https://stackoverflow.com/questions/786 ... l-mismatch
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»