Невозможно ссылаться на таблицу стилей css в шаблоне, загружаемом python

Я новичок в использовании Python и столкнулся с проблемой при попытке сослаться на мою таблицу стилей из документа .tpl. Мои документы python, template и css находятся в одном каталоге, однако, когда я загружаю страницу с помощью CMD на «localhost: 8080», он показывает шаблон без применения стиля.

В моем шаблоне документа index.tpl я сослался на три таблицы стилей:

<link rel="stylesheet" type="text/css" href="demo.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="animate-custom.css" />

И мой файл python выводит шаблон: index.py:

from bottle import route,template,debug,run
import sqlite3

@route('/')
def player():
    return template('index.tpl')

debug(True)
run(reloader=True)

person Zanmato    schedule 24.11.2012    source источник
comment
Проверьте мой другой ответ: stackoverflow.com/a/45761391/3129414   -  person arsho    schedule 18.08.2017


Ответы (1)


Я не использовал бутылку, но большинство веб-фреймворков требуют, чтобы вы поместили свои файлы css/js/images в определенный каталог (который вы задали в конфигурации). Обычно его называют «статическим» или чем-то подобным.

Бьюсь об заклад, если вы попытаетесь загрузить эти файлы CSS прямо в браузере:

http://localhost:8080/demo.css 

вы получите 404.

То, как вы его настроили в настоящее время, - это то, что вы сделали бы для традиционных вещей PHP/CGI - ваш веб-сервер ищет файлы на диске и обслуживает их. Фреймворки (обычно) так не работают — вы устанавливаете правила маршрутизации.

Вы сделали это с помощью декоратора @route('/') - настроив его, вы сказали бутылке, что "любые запросы к http://localhost:8080/ должны запускать функцию игрока и возвращать все, что он генерирует". Обратите внимание, что вы не установили никаких правил для своих файлов css.

Другая возможность заключается в том, что вы неправильно ссылаетесь на файлы CSS в своем HTML. Если вы не получаете ошибку 404 при прямой загрузке файлов CSS, опубликуйте HTML-код, и мы рассмотрим его.

Редактировать: нашел это в документе о бутылке:

http://bottlepy.org/docs/dev/tutorial.html#routing-static-files< /а>

Static files such as images or CSS files are not served automatically. You have to add a route and a callback to control which files get served and where to find them:
from bottle import static_file
@route('/static/<filename>')
def server_static(filename):
  return static_file(filename, root='/path/to/your/static/files')
person Rachel Sanders    schedule 24.11.2012