У меня есть веб-сервер, написанный с помощью python и web.py. Я хочу сделать его демоном. Итак, есть Linux (debian) ОС. Я написал код. Итак, теперь этот веб-сервер запускается как демон, я вижу его в списке процессов и добираюсь до главной страницы в своем браузере.Web.py не может найти файлы
Я использовал модуль web.py, и в этом модуле есть технология рендеринга. Эта технология использует html-шаблоны для создания веб-страницы (html-код, смешанный с python). В этих шаблонах я использую стандартный html-код для добавления стилей CSS и изображений. Папка с таким содержимым помещается в местоположение файла запуска демона.
Так что мой демон загружает эти шаблоны. Но нет css или изображений. Я проверил выполнение кода шаблона (введите некоторые текстовые строки) - все в порядке.
Таким образом, возникает проблема: почему этот HTML-код не может достичь другого контента и как его восстановить?
Одна важная вещь: раньше это был только веб-сервер (а не демон), а версия не-демона (я сохраняю копию) хорошо! Все проблемы возникают при запуске демона.
Надеюсь на вашу помощь!
есть несколько частей коды:
#Daemon start file
class Hive(Daemon):
def run(self):
app = web.application(urls, globals())
app.run()
if __name__ == "__main__":
daemon = Hive('/tmp/daemon-example.pid')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
sys.argv[1] = '8080'
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)
--------------------------------------------------------
#home.html - template that realizes a part of main page and loads some
#picture. I've checked the "if" operator (that activates the <img> tag) - server
#executes it. On my page I see a place for picture (standard form when
#page cannot find the picture to download).
$def with (clients)
<!-- отображение данных о клиентах в базе: ip-адрес, состояние, привилегии
-->
<style type='text/css'>
.client { height: 40px; }
.client_current { border-left: 4px solid lightgreen; }
</style>
<!--<div><span class='glyphicon glyphicon-arrow-down'
style='margin-right: 10px;'></span><a href='#' class='_sh'
data-active='1' data-remote='.online'>Online</a></div>-->
<div style="min-height: 100px;">
<div>Online</div>
<div class='online'>
$code:
offline = False
$for client in clients:
$if not offline and not client.online:
$code:
offline = True
</div><div>Offline</div><div class='offline'>
$if client.admin:
<div class='client client-admin' style='clear: both; padding: 4px;'>
$else:
<div class='client' style='clear: both; padding: 4px;'>
<a href='#client$client.id' onclick='return activateClient(this);' id='client$client.id' class='client_item'>
<div class='img' style='float: left;'>
$if client.icon:
<img src='/powerhive-0.3.beta/static/img/wait.png' />
$else:
<img src='/powerhive-0.3.beta/static/img/wait.png' />
</div>
<div style='float: left; font-size: 10px; margin: 2px;'>
<div style='font-weight: bold; font-size: 11px;'>$client.ip</div>
$client.info
</div>
</a>
</div>
</div>
</div>