Web.py 找不到文件

Web.py cannot find files

我有一个用 python 和 web.py 编写的网络服务器。 我想让它成为守护进程。于是就有了linux(debian)OS。 我写了一个代码。所以现在这个网络服务器作为守护进程启动,我可以在进程列表中看到它并在我的浏览器中到达主页。

我使用了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>

我找到了答案! 我在 url 中添加了这个字符串:'/(js|css|img)/(.*)', 'static',。 class 静态是较早实现的。这个class是相似的:

class static:
    def GET(self, media, file):
        try:
            f = open(media+'/'+file, 'r')
            return f.read()
        except:
            return '404'

之后(最兴奋的部分): 如果我的守护进程无法访问我的静态文件夹,我将图像(以及 js 文件)的源参数替换为:http://localhost/static/img/wait.png

就是这样!可能这很粗鲁,但确实有效 ;)