0

我已经阅读了一些问答,例如load-static-content-with-cherrypy

但是,我无法弄清楚如何通过不同的路径共享它。

我有以下课程:

class Root(Base):
    @cherrypy.expose
    def index(self):
        return self.html_head()+self.header()+"Root"+self.footer()+self.html_end()

    @cherrypy.expose
    def help(self):
        return self.html_head()+self.header()+"HELP"+self.footer()+self.html_end()

配置文件是:

[global]
server.socket_host = "127.0.0.1"
server.socket_port = 8080
server.thread_pool = 10

[/]
tools.staticfile.root = "/path/to/app/"

[/css/style201306.css]
tools.staticfile.on = True
tools.staticfile.filename = "css/style201306.css"

从 /help 访问 css 时出现 404 错误。我必须为我想要提供 css 文件的类中的每个方法添加一个 [path] 条目吗?或者我必须使用 [global] 标签,尽管我可能不想在其他应用程序中使用它?应用配置和路径配置条目有什么区别?直到知道我将其视为一个具有 2 条路径(“/”和“/help”)的应用程序

我正在传递如下配置:

# Configuration
import os.path
tutconf = os.path.join(os.path.dirname(__file__), 'myconf.conf')
cherrypy.quickstart(root, config=tutconf)

两个网页都以相同的方式加载 CSS(实际上是相同的代码):

css/style201306.css
4

1 回答 1

1

问题在于您的 html 本身使用绝对 URL,当内容相同时,没有理由使用相对 url,而不是:

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

利用

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

否则浏览器将附加当前 URL,例如如果当前 URL 是/help,那么它将尝试获取:

/help/css/style201306.css
于 2013-07-02T05:43:32.123 回答