web2py URL帮助程序未生成良好的URL';s

web2py URL帮助程序未生成良好的URL';s,url,web2py,view-helpers,Url,Web2py,View Helpers,我从web2py开始,我需要在我的视图文件中链接我的静态文件 我正在尝试使用URL()帮助器创建链接,但我无法正常工作 我的应用程序被称为red、我的控制器默认值和我的函数索引。 我的视图名为index.html,位于默认文件夹中,当我转到该页面时,我正确地看到了视图,但我的URL都错了 到目前为止,我尝试: URL('static', 'css/bootstrap.min.css') 它返回:“/static/css/bootstartp.css” 其中给出:“/default/red/st

我从web2py开始,我需要在我的视图文件中链接我的静态文件

我正在尝试使用URL()帮助器创建链接,但我无法正常工作

我的应用程序被称为red、我的控制器默认值和我的函数索引。 我的视图名为index.html,位于默认文件夹中,当我转到该页面时,我正确地看到了视图,但我的URL都错了

到目前为止,我尝试:

URL('static', 'css/bootstrap.min.css')
它返回:“/static/css/bootstartp.css”

其中给出:“/default/red/static/css/bootstrap.min.css”

其中给出:“/index/static/css/bootstrap.min.css”

其中给出:“/default/static/css/bootstrap.min.css”

其中给出:“/red/red/static/css/bootstrap.min.css”

我可能尝试了更多,但没有成功

我的索引函数只返回dict()

和我的路由器:

routers = dict(

    # base router
    BASE = dict(
        applications = ['red', 'admin'],
        default_application = 'red',
        default_controller = 'default',
        default_function = 'index',
        map_static = True
    )
)
我认为说我正在谷歌应用程序引擎上测试它也很重要

我想获取“/red/static/css/bootstrap.min.css”。

获取“/red/static/css/bootstrap.min.css”:

要获取“/red/static/css/bootstrap.min.css”:

我找到了解决办法

URL('static', 'css/bootstrap.min.css')
这一行是正确的,但是我需要在路由器文件中关闭map_static。

我找到了解决方案

URL('static', 'css/bootstrap.min.css')

这一行是正确的,但是我需要在路由器文件中关闭map_static。

我希望您希望在视图中链接css文件。 你可以用两种方法来做

1.在控制器文件中(内部索引():)

您还可以在视图(index.html)中使用相同的命令:

2.在视图(index.html)中,您可以提到正常的css链接

<LINK rel="stylesheet" type="text/css" href="{{=URL('static/css','bootstrap.min.css')}}">


如果要为整个应用程序链接此文件。然后在layout.html页面中提到上面这一行。

我希望您希望在视图中链接css文件。 你可以用两种方法来做

1.在控制器文件中(内部索引():)

您还可以在视图(index.html)中使用相同的命令:

2.在视图(index.html)中,您可以提到正常的css链接

<LINK rel="stylesheet" type="text/css" href="{{=URL('static/css','bootstrap.min.css')}}">


如果要为整个应用程序链接此文件。然后在layout.html页面中提到上面这一行。

了解您的期望会有所帮助。第一个是您应该使用的,它看起来很好(即,将“static”视为控制器,将static/中的路径视为函数)。最后一个(“/red/red/…”)看起来确实有点奇怪,可能是一个bug,只是不希望将控制器指定为路径。(第一个缺少“min”,但我想请您仔细检查一下。)缺少“min”是什么意思?至于预期的我编辑了这篇文章,请评论:)啊,‘min’,我在同一个文件夹中有两个文件,所以没有什么区别。据我所知,静态是一个特刊。您不能像处理其他控制器和函数那样处理它。了解您的期望会有所帮助。第一个是您应该使用的,它看起来很好(即,将“static”视为控制器,将static/中的路径视为函数)。最后一个(“/red/red/…”)看起来确实有点奇怪,可能是一个bug,只是不希望将控制器指定为路径。(第一个缺少“min”,但我想请您仔细检查一下。)缺少“min”是什么意思?至于预期的我编辑了这篇文章,请评论:)啊,‘min’,我在同一个文件夹中有两个文件,所以没有什么区别。据我所知,静态是一个特刊。你不能像处理其他控制器和函数那样处理它。我不想显式地包含应用程序的名称。。。否则我不需要URL作为开始。我不想显式地包含应用程序的名称。。。否则我就不需要URL了。
URL('red/static', 'css/bootstrap.min.css')
URL('static', 'css/bootstrap.min.css')
response.files.append(URL(request.application,'static/css','bootstrap.min.css'))
{{response.files.append(URL(request.application,'static/css','bootstrap.min.css'))}}
<LINK rel="stylesheet" type="text/css" href="{{=URL('static/css','bootstrap.min.css')}}">