【问题标题】:web2py URL helper not building good URL'sweb2py URL 助手没有构建好的 URL
【发布时间】:2012-07-11 22:28:37
【问题描述】:

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

我正在尝试使用 URL() 助手来制作链接,但我无法正常工作...

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

到目前为止我尝试过:

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

回馈:“/static/css/bootstartp.css”

URL(a=request.application, args='static/css/bootstrap.css')

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

URL(r=request, arg='static/css/bootstrap.min.css')

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

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

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

URL(a=request.application, c='static/css/bootstrap.min.css', f='')

其中给出:“/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”。

【问题讨论】:

  • 了解您的期望会很有帮助。第一个是您应该使用的,它看起来不错(即,将“静态”视为控制器,将 static/ 中的路径视为函数)。最后一个 ('/red/red/...') 确实看起来有点奇怪,并且可能是一个错误,除了将控制器指定为路径并不是真正预期的。
  • (第一个缺少 'min',但我请你仔细检查一下。)
  • 缺少'min'是什么意思?至于我编辑帖子的预期,请查看:)
  • 啊,'min',我将两个文件放在同一个文件夹中,所以没有真正的区别。
  • 据我所知,静态是一个特殊问题。你不能像处理其他控制器和函数那样处理它。

标签: url web2py view-helpers


【解决方案1】:

我希望你想在你的视图中链接 css 文件。 你可以通过两种方式做到这一点。

1.在控制器文件中(在index()里面:)

response.files.append(URL(request.application,'static/css','bootstrap.min.css'))

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

{{response.files.append(URL(request.application,'static/css','bootstrap.min.css'))}}

2.在视图(index.html)中可以提及正常的css链接。

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我不想明确包含应用程序的名称...否则我不需要以 URL 开头。
    【解决方案3】:

    我找到了解决办法。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 2016-10-03
      相关资源
      最近更新 更多