Cherrypy和JS,找不到imag

2024-04-16 05:09:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的Cherrypy脚本,现在只提供一个页面。我希望页面能够动态显示图像。为此,我编写了一个简单的JS脚本。但是当我尝试运行页面时,它找不到图像。代码从~/image_player/test_app.py运行,图像位于~/image_player/app/public。静态路径请参见python代码:

import cherrypy
import os
import sys


class image_player(object):
    @cherrypy.expose
    def index(self):
        return open('app/index.html')


if __name__ == '__main__':
    if len(sys.argv) == 2:
        port = int(sys.argv[1])
    else:
        port = 3030
    host = '0.0.0.0'
    conf = {
        '/': {
            'tools.sessions.on': True,
            'tools.staticdir.root': os.path.abspath(os.getcwd())
        },
        '/query': {
            'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
            'tools.response_headers.on': True,
            'tools.response_headers.headers': [('Content-Type', 'text/plain')],
        },
        '/static': {
            'tools.staticdir.on': True,
            'tools.staticdir.dir': 'app/public'
        },
        '/js': {
            'tools.staticdir.on': True,
            'tools.staticdir.dir': 'app/js'
        }
    }

    webapp = image_player()
    # Configure server and port
    cherrypy.config.update({'server.socket_host': host,
                            'server.socket_port': port})
    cherrypy.quickstart(webapp, '/', conf)

下面是包含js的index.html

^{pr2}$

我得到的错误是GET http://hostname/LPROFILE.jpg 404 (Not Found)我显然遗漏了一些简单的东西,但我不确定是什么。在


Tags: 图像imageimporttrueappindexoson
2条回答

它适合我(win x64):

conf = {
    '/': {
        'tools.sessions.on': True,
        'tools.staticdir.root': os.path.abspath(os.getcwd())
    },
    '/css': {
        'tools.staticdir.on': True,
        'tools.staticdir.dir': './css'},
    '/img': {
        'tools.staticdir.on': True,
        'tools.staticdir.dir': './img'},
    '/js': {
        'tools.staticdir.on': True,
        'tools.staticdir.dir': './js'},
    'global': {
        'environment': 'production',
        'log.screen': True,
        'server.socket_host': '127.0.0.1',
        'server.socket_port': 8080,
        'engine.autoreload_on': True,

    }}

例如: url(../img/背景图片)在

给定您所示的配置,静态文件将在/static路径下提供,这意味着app/public(相对于启动服务器的初始目录)下的所有文件都可以从http://hostname/static/访问,对于LPROFILE.jpg,应该可以在:http://hostname/static/LPROFILE.jpg中找到

相关问题 更多 >