bmber
@bmber
Иду по кривой дорожке IT вверх.

Как подружить Bottle.py с сервером Ubuntu, если error 500 «'index.tpl' not found»?

Ну не выходит у меня. Загвоздка в ненайденом .tpl файле. Однако, подозреваю, что и static работать тоже не будет.
Знаю, что дело в путях, но решить это не смог.
КОД
import requests
from bottle import route, request, run, static_file, template


@route('/')
def index():
    return template('index.tpl', root='.')

@route('/static/<filename>')
def server_static(filename):
    return static_file(filename, root='./static')

run(host='localhost', port=80, )

localhost - конечно же заменён на адрес сервера.
Скрипт длиннее, но даже в этом виде не работает.

На локальном компьютере всё работает.
Если в убунту зайти прямо в папку, где лежит скрипт и ~python3 main.py - тоже всё работает.
Однако, если запускать как ~python3 /home/www/main.py - то фигушки, выдаёт батловскую err500 "'index.tpl' not found"
Соответственно не работает запуск скрипта, как сервиса.

Ах да, пробовал ещё добавлять код из интернета, который вроде бы должен решить проблему, но нет.
#!/usr/bin/python3
import requests
from bottle import route, request, run, static_file, template
import os
import sys

# add your project directory to the sys.path
project_home = '/home/covidpy/'
if project_home not in sys.path:
    sys.path = [project_home] + sys.path

# make sure the default templates directory is known to Bottle
templates_dir = os.path.join(project_home, 'views/')
if templates_dir not in bottle.TEMPLATE_PATH:
    bottle.TEMPLATE_PATH.insert(0, templates_dir)


@route('/')
def index():
    return template('index.tpl', root='/views')

@route('/static/<filename>')
def server_static(filename):
    return static_file(filename, root='/static')

run(host='', port=80, )
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
вот поэтому в вакансиях пишут "знание linux"

да, кстати, знание Python тоже надо, за
/home/www/main.py
по шапке

замени
root='.'
на пути от корня

а потом уже найдешь и заменишь на относительные, ну или забьешь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы