使用CherryPy加载静态内容

phi*_*ipp 3 python cherrypy

我现在尝试了很多东西,我用谷歌搜索了几个小时,但我无法解决我的问题.

配置文件:

[/] 
tools.staticdir.root = "/Users/phil/Dropbox/Projects/AppName" 

[/main.css] 
tools.staticfile.on = True 
tools.staticfile.filename = "/Users/phil/Dropbox/Projects/AppName/css/main.css" 

[/images] 
tools.staticdir.on = True 
tools.staticdir.dir = "images" 
Run Code Online (Sandbox Code Playgroud)

CherryPy代码:

import cherrypy, os
class AppName(object):
def index(self):
    return "<img src='images/logo.jpeg'>"
index.exposed = True

cherrypy.config.update('/Users/phil/Dropbox/Projects/AppName/conf/AppName.config')
cherrypy.quickstart(AppName())
Run Code Online (Sandbox Code Playgroud)

我的问题是它不起作用,我尝试了所有的东西与组合路径等,但图像和CSS不会加载,当我做像返回'"

以下是加载应用程序时出现的错误:

127.0.0.1 - - [24/May/2012:22:28:47] "GET /images/logo.jpeg HTTP/1.1" 404 1268 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5"
Run Code Online (Sandbox Code Playgroud)

phi*_*ipp 6

不确定问题是什么,但这有效:

[/]
tools.staticdir.root = "/Users/phil/Dropbox/Projects/AppName"

[/images]
tools.staticdir.on = True
tools.staticdir.dir = "images"
Run Code Online (Sandbox Code Playgroud)

启动应用程序:

cherrypy.quickstart(AppName(), '/', 'AppName.config')
Run Code Online (Sandbox Code Playgroud)

CherryPy代码:

def index(self):
    return "<img src='/images/logo.jpeg'>"
index.exposed = True
Run Code Online (Sandbox Code Playgroud)

我认为/之前的图像也很重要.谢谢大家


Mak*_*oto 5

查看Cherrypy 手册的提供静态内容部分,看看是否可以帮助您。

或者,这是我之前用来传递静态内容的东西 - main().

conf = {
        '/':
        {'tools.staticdir.root': os.path.dirname(os.path.abspath(__file__))},
          '/css': {
          'tools.staticfile.on': True,
          'tools.staticfile.filename': os.path.join(os.path.dirname(os.path.abspath(__file__)), 'css/')
        }
      }
cherrypy.quickstart(AppName(), config=conf)
Run Code Online (Sandbox Code Playgroud)