问题标签 [url-for]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3052 浏览

python - 烧瓶 url_for TypeError

尝试在 Flask 中使用 url_for 方法时出现错误。我不确定它的原因是什么,因为我只遵循 Flask 快速入门。我是一个有一点 Python 经验的 Java 人,想学习 Flask。

这是跟踪:

我的代码是这样的:

我已经尝试过 Flask 的稳定版和开发版,但错误仍然存​​在。任何帮助都感激不尽!谢谢,如果我的英语不是很好,我很抱歉。

0 投票
0 回答
197 浏览

ruby-on-rails - 为什么在从不同的控制器重新渲染部分时,Rails 中的 url_for 助手会失败?

我有一个包含一堆小部件的页面,这些小部件的内容主要由 CustomerController 呈现。但是,还有另一个称为 DigitalItemController 的控制器,用于处理有关客户项目更改的业务逻辑。我有一个表单,用于上传要由 DigitalItemController 中的方法通过 POST 处理的文件。该表单位于名为 :customer_assets 的部分中,因为它包含他们已上传的客户文件。同样的小部件有一个已上传文件的表格,其中包含指向它们的链接。

我遇到的问题是,由于 CustomerController 通常会进行渲染,因此它可以很好地渲染我的部分,没有任何抱怨。但是,当我让用户提交要上传的文件时,它会调用我的 DigitalItemController 中的一个方法,其中最后一行表示要渲染部分。当它到达那条线时,我得到一个 ActionController::RoutingError 因为它试图呈现部分。它不喜欢的行是:

我认为不会有问题,因为这里明确使用了 DataController。它应该知道我只想像以前一样重新渲染部分。但是,我得到了这个:

显然,这里的身份证号码已被删除,以防万一。我需要做的就是让 DigitalItemController 中的该方法处理文件上传,然后重新渲染部分,以便小部件显示正确和最新的数据。对我来说,它在正常渲染时渲染得很好,但是一旦提交文件,它就会引发路由错误,这对我来说似乎很奇怪。

解决这个问题的方法是什么?

0 投票
1 回答
1297 浏览

python - Python/Flask/Jinja url_for 格式化

我正在寻找使用 Flask 的 url_for 为标签生成 URL - 但是它似乎正在用实体/url 代码“%2B”替换“+”。这使得 URL 相当难看,'+' 会更受欢迎。

所以,我的问题是,如何使用 url_for - 但让它接受 '+' 而不将其格式化为 HTML 实体?

0 投票
0 回答
483 浏览

ruby-on-rails - Rails url_for 来自带参数的字符串

我有一个我正在尝试制作的站点本地 tinyurl,所以我需要显示与控制器操作不对应的 URL 的完整路径,这不起作用:

因为url_for接受字符串的那个不接受任何参数。

我怎样才能做到这一点?

根据评论编辑:

配置/路由.rb:

耙:

0 投票
1 回答
372 浏览

ruby-on-rails - 将 Rails 3.0 升级到 3.1 时路由停止工作

我正在使用带有 Rails 3.1 的 Ruby 1.8.7。我的应用程序在 Rails 3.0 中运行良好,但是当我将它升级到 Rails 3.1.4 时,我所有的 url 助手都坏了!

在过去两天像疯子一样谷歌搜索之后,我已经放弃了,是时候寻求帮助了。我不认为问题出在我的 routes.rb 文件上,而是在视图/助手方面。

我的 routes.rb 中有以下内容:

在我的主页视图中,我有以下link_to,它出错了:

当我执行 rake 路由时,我得到以下输出,因此路径存在:

当我在浏览器中转到 /sessions/new 时,页面再次加载,路由存在,但在基于 _path 的 url 上出错:

我得到的错误如下:

由于路由确实存在,因此它必须与 url_for 助手有关。我还应该寻找什么?

更新 1:

我在 application_helper.rb 中添加了以下内容:

现在,当我收到以下错误时:

这不是我刚刚做的吗?

更新 2:

以下工作按照 Yoshiji 先生的建议:

更新 3:

通过删除供应商目录中的一些旧 Rails 2 插件,我让 session_path 再次工作。

0 投票
2 回答
245 浏览

ruby-on-rails - 为什么 url_for [:new, Project] 翻译成 new_projects_url (复数),而不是 new_project_url (单数)?

我觉得url_for [:new, Project, :test]特别有趣:这里project是奇异的!

任何人都知道如何new_project_url从像这样的数组生成(或路径)[:new, Project]

0 投票
1 回答
16418 浏览

python - Flask:子目录中的静态文件

在我的烧瓶模板文件中,我包含一个 css 文件(我省略了样板文件),如下所示:

url_for('static', filename='css/bootstrap.css')

这使得/static/css/bootstrap.css它被解释为哪个意思(因为前导斜杠)domain.com/static/css/boostrap.css。不幸的是,实际static文件夹位于一个子目录:domain.com/projects/test/static/

环境细节:

我的 fcgi 文件位于~/fcgi-bin文件夹中(我猜是主机特定的):

我的 .htaccess 位于 domain.com/projects/test/

总而言之,我想url_for('static', filename='css/bootstrap.css')返回static/css/bootstrap.css而不是/static/css/bootstrap.css

编辑#1

我注意到这也发生在普通的 url_for 调用上,而不是像 url_for('about') 这样的静态文件。

编辑#2

我已经写了一个快速入门应用程序一篇关于此的博客文章。

0 投票
2 回答
2062 浏览

python - 烧瓶 url_for 产生错误的 URL

烧瓶中的 url_for 生成器不适用于我的一个视图(它适用于其他视图)。生成器/user/?name=Joe在我期望的时候给出/u/Joe

在模板中,我尝试使用以下方法获取用户页面的 URL:{{ url_for('user', name = g.user.name ) }}

这是对应的视图函数:

起初这是可行的,但发生了一些变化。我尝试更改视图名称和 url,但没有成功。

有什么想法吗?我在这方面不知所措...

完整的应用程序可在 GitHub 上找到:https ://github.com/joehand/weight-and-more-tracker

编辑@login_required装饰是 Flask-login 提供的。

此外,删除<name>变量并不能解决问题。那么 URL 就是/user.

0 投票
2 回答
351 浏览

ruby-on-rails - 如何扩展 url_for 以提供动态默认参数

我试图找出一种干净干爽的方法来扩展 url_for ,以便它提供一个基于动态的默认参数。我知道这听起来很奇怪,让我解释一下:

我有一组位于动态范围下的嵌套资源路由:

这给出了如下路线:

为了在视图中生成这些路线,我可以很容易地做到:

但是,这对我来说似乎不是很干燥,因为每个用户的网络都是固定的。我宁愿能够简洁地说:

0 投票
1 回答
178 浏览

ruby-on-rails - 资产管道如何使用 url_options 自动附加 url_for 和 link_to 等参数?

在一个 Rails 3.2 应用程序中,我正在这样做。

效果很好。除了资产管道。我需要将这些参数附加到所有应用程序 url,包括 css、js、图像。

在单独的 rails 3.2 应用程序中。出于一个奇怪的原因,我忽略了。相同的 url_options 不起作用。不仅适用于资产,而且根本不起作用。我不得不做以下事情。

这也不适用于资产。我很困惑。有人会知道解决方案吗?

谢谢