Сервер разработки Django. CSS-файлы, используемые как text/html
Я использую Django 1.8. Я получаю статус 200 для обоих моих файлов CSS, но Firefox говорит:
The stylesheet http://localhost:8000/css/full-width-pics.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
The stylesheet http://localhost:8000/css/mainstyle.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
По какой-либо причине файлы обслуживаются как text / html, а не text / css. Это мой HTML.
<link href="css/full-width-pics.css" rel="stylesheet" type="text/css" />
<link href="css/mainstyle.css" rel="stylesheet" type="text/css" />
Это в файле base.html. Я расширяю base.html в моем файле index.html. До того, как я начал использовать наследование шаблонов и имел все в index.html, он работал нормально.
Я нахожусь на Ubuntu. Я проверил /etc/mime.types. CSS указан с текстом / CSS.
Это оставило меня в замешательстве
0 ответов
ОТВЕТ 2020 ГОД:
Если вы хотите, чтобы какой-либо тип содержимого mime автоматически определялся браузером, это решение.
после многих болезненных неудачных статических попыток это динамическое решение.
def fetch(request):
import mimetypes
clientRequestUrl=os.getcwd()+'/servlet'+request.path
try: return HttpResponse(fread(clientRequestUrl), content_type=mimetypes.guess_type(request.path)[0])
except Exception as e: return HttpResponse(str(e)+'===> Error Thrown <br>')
- здесь fread() читает файл непосредственно в try, кроме блока, это просто оболочка ввода-вывода
- в блоке try -> content_type=mimetypes.guess_type(request.path)[0] выполняет магию обнаружения MIME [0], т.е. первый элемент необходим, потому что он возвращает кортеж, сначала являющийся типом mime, а вторым - кодируемым.
- request.path передается в строке выше, потому что он предполагает MIME на основе пути к файлу. например, text/css для файла с именем stylsheet.css, если клиент (браузер) запросит его.
- clientRequestUrl = точный URL-адрес, который клиент пытается запросить на сервере.