URL ディスパッチまたはトラバーサルに関する初心者の質問があります。私がやろうとしているのは、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、および画像が機能しないことです。その理由は、絶対パスが無効になるためです。
/: なしでログインしている場合
<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 にあります。
これを修正して、スラッシュの有無にかかわらず両方のパスで機能させるにはどうすればよいですか? トラベラルとURLディスパッチを試しましたが、問題はどちらも同じです。