javascript - Cherrypy和JS,找不到图像

标签 javascript python cherrypy

我有一个简单的 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:

<!DOCTYPE html>
<html>
  <head>
    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
  hello
  <div id="imageDiv"></div>
  <script>
    var par = document.getElementById('imageDiv');
    var img = document.createElement('img');
    img.src = '/LPROFILE.jpg';
    par.appendChild(img);
  </script>
  </body>
</html>

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

最佳答案

根据您显示的配置,静态文件在 /static 路径下提供,这意味着 app/public 下的所有文件(相对于初始目录)您启动服务器的位置)可以从 http://hostname/static/ 访问,对于 LPROFILE.jpg 来说,应该可以在以下位置找到: http://主机名/static/LPROFILE.jpg

关于javascript - Cherrypy和JS,找不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43593964/

相关文章:

javascript - 如何在 Jquery 中访问输入类型名称作为 JobRoles[1].BasedIn

python - 我可以将我的客户模型与 Django 用户模型链接起来吗?

python - 学习Python else语法错误

python - Django休息框架: get all data in relation

python - CherryPy 中包含 "+"的 URL 出现问题

javascript - Sinon.js spy.called 不适用于 RPC

javascript - 如何将 Zoom Chart 与 Angular 2 集成

python - 使用不同的 request_queue_size 和超时启动 CherryPy

javascript - 尝试通过axios获取API,但不知道如何访问

python - 如何确定 CherryPy 是否正在缓存响应?