首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将trailing_slash添加到Rails 4中没有的所有urls中?

如何将trailing_slash添加到Rails 4中没有的所有urls中?
EN

Stack Overflow用户
提问于 2014-04-16 02:07:02
回答 4查看 6.1K关注 0票数 4

我试过在application.rb中添加这个

代码语言:javascript
复制
config.action_controller.default_url_options = { :trailing_slash => true }

以及在:trailing_slash => true中使用routes.rb

代码语言:javascript
复制
match '/download', to: 'welcome#download', via: 'get', :trailing_slash => true

但两者似乎都不起作用。我在rails 4.0文档中搜索,但是找不到相关的信息。我在这里错过了什么?

更新:

我试着加入

代码语言:javascript
复制
Rails.application.default_url_options[:trailing_slash] = true

filter_parameter_logging.rb中,因为这是整个项目中唯一可以找到Rails.application.*的地方,但它也不起作用。我找到了行在这里的发行版中,我使用的是4.0.4。我是不是把这个放错地方了?在重新检查之前我重新启动了服务器。

对于这个简单的问题,很抱歉,但据我所收集到的信息,如果不是主要的话,trailing_slash不应该也反映在浏览器的url中吗?因为这是我所需要的,我要和历史一起去。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-17 08:43:58

我想你把:trailing_slash => true的意思搞错了。

它所做的就是将/添加到您的路径帮助器的末尾。不涉及重定向。

你的路线仍然会对有和没有尾随斜线都有反应。

如果您想使用nginx服务器将所有非trailing_slashuri的类似/download重定向到/download/,您将执行如下操作:

代码语言:javascript
复制
rewrite ^([^.\?]*[^/])$ $1/ permanent;

您仍然希望将:trailing_slash => true添加到您的路由中,以便路径/url帮助程序生成正确的uri(因此用户不需要重定向)。

票数 9
EN

Stack Overflow用户

发布于 2014-04-16 05:13:55

Trailing_slash指的是名字后面的/,比如page/,而不是/page

你把路线放错了。

把它改成

代码语言:javascript
复制
match 'download/', to: 'welcome#download', via: 'get', :trailing_slash => true

还可以通过直接给您的trailing_slash => true助手一个link_to选项来实现这一点。

代码语言:javascript
复制
link_to 'Downloads', downloads_path(:trailing_slash => true)

虽然在Rails 3中这样做,但不确定Rails 4.

有关更多细节,请参见此所以

票数 2
EN

Stack Overflow用户

发布于 2014-04-16 05:10:28

我用的是rails 4.0.2,它起作用了

routes.rb

代码语言:javascript
复制
       get 'admin/update_price_qty' => 'admin#update_price_qty', :trailing_slash => true,:as  => "price"

在控制台:-

代码语言:javascript
复制
     irb(main):003:0* app.price_path
     => "/admin/update_price_qty/"

routes.rb

代码语言:javascript
复制
   match '/download', to: 'welcome#index', via: 'get', :trailing_slash => true,:as => "welcome_price"

在控制台:-

代码语言:javascript
复制
   `irb(main):002:0> app.welcome_price_path
    => "/download/"`

但是我尝试过在application.rb中添加这个

代码语言:javascript
复制
config.action_controller.default_url_options = { :trailing_slash => true }

不起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23097756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档