1

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ディスパッチを試しましたが、問題はどちらも同じです。

4

1 に答える 1

5

すべての href は最初のスラッシュで始める必要があります。

于 2013-01-07T23:40:13.587 に答える