gpt4 book ai didi

ruby-on-rails-3 - 我的文件扩展名在参数列表中的哪个位置

转载 作者:行者123 更新时间:2023-12-04 05:14:00 24 4
gpt4 key购买 nike

我正在关注这个答案,同时试图弄清楚如何显示位于我的应用程序目录中的图像 Rails 3, displaying jpg images from the local file system above RAILS_ROOT

我已经创建了一个 Controller ,如图所示,添加了 match线到routes.rb,在一个测试网页中,我想加载一个名为test.jpg的图像使用代码

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

但是我收到一条错误消息,说文件 <...>/public/images/test没有找到。
然后我去重命名我的图像,以便 .jpg不见了,然后脚本找到了我的图像并根据需要加载它。

任何想法扩展去了哪里?我不知道如何调试这个问题。

最佳答案

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

match '/serve_image/:filename' => 'images#serve'
:filename只会匹配它找到的第一个点。所以 /serve_image/test.jpg将匹配 test作为文件名,并且会认为您期望 JPG 作为响应。您需要做的是告诉路由器您要在文件名中包含点,如下所示:
match '/serve_image/:filename' => 'images#serve', :constraints => {:filename => /[^\/]+/}

这将匹配除正斜杠之外的任何内容,在 params[:filename] 中为您提供完整的文件名

the Rails Routing guide section on Dynamic Segments了解更多信息。

关于ruby-on-rails-3 - 我的文件扩展名在参数列表中的哪个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14532421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com