我已阅读了一些问答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]标签,尽管我可能不想在其他应用程序中使用它? app config和路径配置条目有什么区别?直到知道我认为这是一个有两个路径的应用程序(“/”和“/ help”)
我传递的配置如下:
# Configuration
import os.path
tutconf = os.path.join(os.path.dirname(__file__), 'myconf.conf')
cherrypy.quickstart(root, config=tutconf)
两个网页都以相同的方式加载CSS(实际上,代码是相同的):
css/style201306.css
答案 0 :(得分:1)
问题在于你的html本身使用的是绝对URL,没有理由在相同内容时使用相对url,而不是:
<link rel="stylesheet" type="text/css" href="css/style201306.css" />
使用
<link rel="stylesheet" type="text/css" href="/css/style201306.css" />
否则浏览器会附加当前网址,例如,如果当前网址为/help
,则会尝试获取:
/help/css/style201306.css