Ruby on rails 3 我的文件扩展名在参数列表中的什么位置

Ruby on rails 3 我的文件扩展名在参数列表中的什么位置,ruby-on-rails-3,Ruby On Rails 3,我遵循这个答案,同时试图找出如何显示位于我的应用程序目录中的图像 我已经创建了一个如图所示的控制器,将匹配行添加到routes.rb,并在测试网页中使用代码加载名为test.jpg的图像 <img src="/serve_image/test.jpg" /> 但是我收到一个错误,说找不到文件/public/images/test。 然后我去重命名了我的图像,这样.jpg就不见了,然后脚本找到了我的图像,并根据需要加载了它 知道分机去哪里了吗?我不知道如何调试这个问题。默认情况下

我遵循这个答案,同时试图找出如何显示位于我的应用程序目录中的图像

我已经创建了一个如图所示的控制器,将
匹配
行添加到routes.rb,并在测试网页中使用代码加载名为
test.jpg
的图像

<img src="/serve_image/test.jpg" />

但是我收到一个错误,说找不到文件
/public/images/test

然后我去重命名了我的图像,这样
.jpg
就不见了,然后脚本找到了我的图像,并根据需要加载了它


知道分机去哪里了吗?我不知道如何调试这个问题。

默认情况下,Rails与动态段中的点不匹配。因此,对于这条路线:

match '/serve_image/:filename' => 'images#serve'
:filename
将只匹配它找到的第一个点。因此,
/serve\u image/test.jpg
将匹配
test
作为文件名,并认为您希望得到一个jpg作为响应。你需要做的是告诉路由器你想在文件名中包含点,类似这样:

match '/serve_image/:filename' => 'images#serve', :constraints => {:filename => /[^\/]+/}
这将匹配除正斜杠之外的任何内容,在
params[:filename]

有关更多信息,请参阅