【发布时间】:2013-01-07 22:33:18
【问题描述】:
我有一个关于 URL Dispatch 或 Traversal 的初学者问题。我想做的是使用 Mako 渲染器来渲染我的视图。所以我有这个文件夹/includes/,所有的html、css和javascript都在其中。这是我的 Pyramid 主要代码:
from pyramid.config import Configurator
def main(global_config, **settings):
config = Configurator(settings=settings)
config.add_static_view('includes', 'includes', cache_max_age=3600)
config.add_renderer(".html", "pyramid.mako_templating.renderer_factory")
config.add_route('home', '/')
config.scan()
return config.make_wsgi_app()
以下是我的观点:
@view_config(route_name='home', renderer='index.html')
def my_view(request):
return {'name':'Netherdrake'}
@view_config(name = 'login', renderer='login.html')
def login(request):
return {'name':'Netherdrake'}
问题是,当我访问 ip:port/login 时,站点工作正常,但是当我尝试 ip:port/login/ 时,css、javascript 和图像不起作用。原因是,我的绝对路径失效了。
这是我的 login.html sn-p(真的是 mako 模板),而没有 /:
<link href="includes/css/twitter/bootstrap.css" rel="stylesheet">
<link href="includes/css/base.css" rel="stylesheet">
<link href="includes/css/twitter/responsive.css" rel="stylesheet">
<link href="includes/css/jquery-ui-1.8.23.custom.css" rel="stylesheet">
<script src="includes/js/plugins/modernizr.custom.32549.js"></script>
这是当我要登录/路径时(在这种情况下站点已损坏,没有 css、图像、js...):
<link href="includes/css/twitter/bootstrap.css" rel="stylesheet">
<link href="includes/css/base.css" rel="stylesheet">
<link href="includes/css/twitter/responsive.css" rel="stylesheet">
<link href="includes/css/jquery-ui-1.8.23.custom.css" rel="stylesheet">
<script src="includes/js/plugins/modernizr.custom.32549.js"></script>
login.html 也在 /includes 中。
我怎样才能解决这个问题,让它在两条路径下都能正常工作,带斜线和不带斜线?我尝试了traveral和url dispatch,两者的问题都是一样的。
【问题讨论】:
标签: python url pyramid traversal