2014-02-17 1 views
4

Итак, у меня есть фреймворк для бутылок, но я хотел бы иметь в нем одну веб-страницу.Как вернуть html-файл в сервер бутылок?

Я уже создал веб-страницу в html и css, но я не уверен, как использовать бутылку. У меня есть отображение только html, но часть css не работает.

Я пробовал искать походы, но я не могу найти пример этого.

@get('/test') 
def test(): 
    return static_file('index.html' , root="views") 

Мои файлы css находятся в том же каталоге, что и папка видов.

+0

Вы говорите о рамках бутылки? – IanAuld

+0

да, я добавлю это к основному вопросу – Ramis

ответ

6
from bottle import static_file 
@route('/static/<filename>') 
def server_static(filename): 
    return static_file(filename, root='/path/to/your/static/files') 

Это код, предоставленный документацией Bottle для обслуживания статического файла.

+0

Я знаю, как это сделать, и он возвращает мой html, и он отлично работает, но мой css не работает. В чем моя главная проблема. – Ramis

+0

@Ramis Является ли ваш файл .css также в том же каталоге? Проводка кода, который вы используете для вызова 'static_file()' и описание иерархии папок, облегчит отладку. – unholysampler

+0

добавлен в исходное сообщение – Ramis

-1

Бутылка лучше всего подходит для API, где маршруты не возвращают HTML-файлы. Тем не менее, вы можете обслуживать статические HTML-файлы с помощью функции static_file.

Если вы ищете более полную структуру с шаблонами HTML, попробуйте Flask.

+0

Да, именно по этой причине я выбираю бутылку в начале, но теперь мне нужна одна веб-страница с моим api. У меня нет времени менять веб-фреймворк. – Ramis

0

Если у нас есть разные папки для js и css-файлов (которые используются в html-файлах), что является общим случаем во всех проектах, мы должны явно обслуживать содержимое js и css-каталога отдельно.

См ниже код для получения более подробной информации:

from bottle import route 
from bottle import static_file 

#Hosts html file which will be invoked from browser. 
@route('/filesPath/<staticFile>') 
def serve_static_file(staticFile): 
    filePath = '/path/to/your/static/file/' 
    return static_file(staticFile, filePath) 

#host css files which will be invoked implicitly by your html files. 
@route('/files_path/css/<cssFile>') 
def serve_css_files(cssFile): 
    filePath = '/path/to/your/css/file/' 
    return static_file(cssFile, filePath) 

# host js files which will be invoked implicitly by your html files. 
@route('/files_path/js/<jsFile>') 
def serve_js_files(jsFile): 
    filePath = '/path/to/your/jss/file/' 
    return static_file(jsFile, filePath) 

 Смежные вопросы

  • Нет связанных вопросов^_^