【问题标题】:Python webhelpers.html.tags with WSGI SCRIPT_NAME prefix带有 WSGI SCRIPT_NAME 前缀的 Python webhelpers.html.tags
【发布时间】:2011-06-21 03:07:00
【问题描述】:

我有一个 pylons 网络应用程序,它使用routes.url_for 生成指向控制器操作的链接,并使用webhelpers.html.tags 中定义的函数生成指向静态文件(CSS、javascript、图像等)的链接。当我的网络应用程序托管在服务器的根目录时,这工作正常(即,网络应用程序从“/”运行)。但是,如果我移动 web 应用程序,将其托管在不同的位置,例如“/foobar/”,url_for 链接可以完美运行,但webhelpers.html.tags 下的函数仍会生成指向“/path/to”的链接/resource' 而不是 '/foobar/path/to/resource'。

我的理解是 WSGI 定义了一个名为 SCRIPT_NAME 的环境变量,其中包含通向应用程序的路径(本例中为 /foobar)。我的猜测是url_for 正在关注这个环境变量并相应地更改它生成的 URL。

有没有办法让webhelpers 模块做同样的事情?

【问题讨论】:

    标签: python html pylons wsgi


    【解决方案1】:

    如果我没看错,听起来 url_for 正确地返回了带有您想要的 URL 的字符串。但据我所知,您将 url 字符串传递给各种 webhelper。

    你在做这样的事情吗?

    link_to('something', url(controller='path', action='to'))
    

    【讨论】:

    • 这仅在您链接到控制器时才有效。如果您尝试链接到图像、CSS 文件或 JS 脚本,您会给url(或url_for)提供哪些参数?
    • url 可以走静态路径,太喜欢了..url('/css/base.css')
    • 谢谢 - 这就是解决方案。
    猜你喜欢
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 2017-05-04
    • 2015-01-15
    • 2016-06-15
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多