Не удается должным образом обслуживать статические файлы в flask

#python #html #flask

#python #HTML #flask

Вопрос:

Я пытаюсь передать статическое изображение в файл css с помощью flask. Я использую render_template() to для получения html-файла, и у меня есть статический каталог для моих css и javascript. Загружается другое мое изображение, но изображение, на которое я ссылаюсь из файла css, не работает, и я получаю его из терминала flask: GET /static/static/res/typewriter.jpg HTTP/1.1" 404

Я попытался ввести путь в своем браузере, и он работает нормально

Вот как я ссылаюсь на изображение, поскольку файл CSS уже находится в статическом каталоге. background-image: url("/res/typewriter.jpg");

Я надеюсь, что это легко исправить, тем более, что я новичок в этом материале. Спасибо!

Комментарии:

1. Какой путь вы вводите в браузере?

2. Я ввел [my_local_ip]:[port]/static/res/image.jpg

Ответ №1:

В вашем html-файле у вас должно быть это в заголовке:

 <link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='mainpage.css') }}"> 
  

… пока ваш статический каталог называется static. В нескольких моих приложениях Flask я импортирую Bootstrap css следующим образом:

   <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.css') }}">
  

Убедитесь, что вы посещаетеhttp://127.0.0.1:5000 в вашем браузере (если вы не изменили значение по умолчанию).

Также вот случайный пример того, как я обслуживаю изображения из статического каталога:

 h1 class="display-3"> <img src="/static/title_welcome.png" alt="about"></h1>
  

Комментарии:

1. Конечно, никаких проблем. Не был уверен, что ваш путь правильный … заметил, что у вас есть static / dir внутри static / dir . Удачи