python cherrypy:提供css文件

时间:2013-09-15 20:46:48

标签: python css cherrypy webfaction

我正在使用webfaction作为webhost。我正在尝试为我的cherrypy应用程序提供一个css文件,但有些东西不起作用。我在

中有我的python应用程序
home/webapps/spotipy

中的css文件
home/webapps/spotipy/css

在我的python代码的顶部,我有

#!/usr/local/bin/python3.2
import cherrypy

class Root(object):
    @cherrypy.expose
    def index(self):

        return '''<html> 
                  <head>
                    <title>Spoti.py</title>
                    <link rel="stylesheet" href="css/my_css.css" type="text/css" />
                  </head>
                  <p> hi </p>

                  <body>
                  <p> hi joey </p>
        %s
        </body></html>''' %text

这是在底部

cherrypy.quickstart(Root(),config={

        '/css':
        { 'tools.staticdir.on':True,
          'tools.staticdir.dir':"home/webapps/spotipy/css"
        },
        '/my_css.css':
        { 'tools.staticfile.on':True,
          'tools.staticfile.filename':"home/webapps/spotipy/css/my_css.css"
        }
    })

2 个答案:

答案 0 :(得分:1)

尝试使用绝对路径而不是相对路径。我想你通过尝试访问home / webapps / spotipy / css搞砸了。在配置中尝试这个:

cherrypy.quickstart(Root(),config={

        '/css':
        { 'tools.staticdir.on':True,
          'tools.staticdir.dir': "/home/webapps/spotipy/css"
        },

        '/joey_css.css':
        { 'tools.staticfile.on':True,
          'tools.staticfile.filename': "/home/webapps/spotipy/css/my_css.css"
        }
    })

,这在html中:

<link rel="stylesheet" href="/css/my_css.css" type="text/css" />

答案 1 :(得分:1)

除了零323答案之外,这是一个完整的工作示例。更改shebang并在/ home / webapps / spotipy目录中运行它。 如果它不起作用,可能会出现浏览器缓存问题,因此请使用Ctrl + F5刷新页面。 您可以通过按Ctrl + U查看页面源来检查css文件是否正确加载,然后单击以查看指向css链接。如果一切正常并且您的css文件仍然不适用于您的页面,则可能是css问题。

#!/usr/bin/python
import os
import cherrypy

class Root(object):
    @cherrypy.expose
    def index(self):
        text="dummy text"
        return '''<html> 
                  <head>
                    <title>Spoti.py</title>
                    <link rel="stylesheet" href="/css/my_css.css" type="text/css" />
                    <link rel="stylesheet" href="/joey_css.css" type="text/css" />
                  </head>
                  <p> hi </p>

                  <body>
                  <p> hi joey </p>
        %s
        </body></html>''' %text

conf={"/css": {"tools.staticdir.on": True,
               "tools.staticdir.dir": os.path.abspath("./css"),},
       '/joey_css.css':
                    { 'tools.staticfile.on':True,
                      'tools.staticfile.filename': os.path.abspath("./css/my_css.css"),
                    }
               }

cherrypy.quickstart(Root(),config=conf)