我有一个关于URL Dispatch或Traversal的初学者问题。我想要做的是使用Mako渲染器渲染我的观点。所以我有这个文件夹/ includes /所有的html和css和javascript。这是我的金字塔主要代码:
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片段(真的是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也在/包含。
如何修复此问题,并使其在两条路径下都能正常工作,有无斜杠?我试过了traveral和url dispatch,两者的问题都是一样的。
答案 0 :(得分:5)
所有href都应该以斜线开头。