0

我正在使用 webfaction 作为虚拟主机。我正在尝试为我的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"
        }
    })
4

2 回答 2

2

这是除了 zero323 答案之外的完整工作示例。更改 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)
于 2015-09-05T10:50:32.280 回答
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" />
于 2013-09-15T20:57:17.547 回答