2011-03-26 16 views
0

我现在有一个Python/CherryPy的应用程序,其中担任,在第一页是index.html的,其中包含的链接<a href="designs.html">read more</a>不需要/添加到HTML文件路径

当我点击这个链接的CherryPy返回以下回溯:

404未找到

路径 '/designs.html' 没有被发现。

回溯(最近通话最后一个): 文件 “/home/aharrisreid/webapps/cp32/lib/python3.1/cherrypy/_cprequest.py”,线路646,在响应 response.body = self.handler () 文件“/home/aharrisreid/webapps/cp32/lib/python3.1/cherrypy/lib/encoding.py”,行188,在调用 self.body = self.oldhandler(* args,** kwargs) 文件 “/home/aharrisreid/webapps/cp32/lib/python3.1/cherrypy/_cperror.py”,线路387,在通话 提高自我 cherrypy._cperror.NotFound:(404,“路径'/designs.html'未找到。“)

因为href属性是'designs.html'我希望直接调用这个页面而不调用cherrypy,但是沿着这个行的某个地方/前缀已经被添加到designs.html中,因此Cherrypy已经被调用来评估根目录路径。

我该如何解决这个问题,并确保只有'designs.html'被传递给页面处理器?

TIA, 艾伦

+0

描述你使用重写规则有被CherryPy的处理所有的请求? (作为前端控制器) – Matijs 2011-03-26 08:44:14

+0

@Matijs - 对不起,不知道你的意思是重写规则。什么是前端控制器?问候。 – 2011-03-26 16:52:13

+0

有关前端控制器的简短描述,请查看http://en.wikipedia.org/wiki/Front_Controller_pattern – Matijs 2011-03-27 13:56:30

回答

1

因为href属性是“designs.html”我希望这个页面直接调用,而不调用CherryPy的,而是介于沿线A /前缀已经被添加到设计中。因此cherrypy已被调用来评估根路径。

我不知道你所说的“直接”的意思 - 东西已被调用,以评估任何URL;如果不是CherryPy,你会期望会被调用什么?没有某种形式的中介,您的浏览器无法访问服务器上的文件。

如果您想为使用CherryPy的静态文件代替动态内容,检查出staticfile和staticdir工具,在http://docs.cherrypy.org/dev/progguide/files/static.html

+0

感谢您的回复。我想我期待如果一个HTML文件(没有任何路径)被称为通过。在另一个html文件中的链接,然后它会在同一个文件夹中自动查找它(就像我在将CherryPy带入方程之前通过测试模式下的浏览器一样)。但是,如果CP在非路径文件之前放置一个'/',那就行了 - 我将为所有非动态html文件创建一个新的静态子文件夹,并在我的配置文件中创建一个指向该文件夹的指针。问候。 – 2011-03-26 16:50:34