存在我已经创建了Ruby on Rails中做动态CSS按照这里的指示路线Plus控制器:红宝石 - 的routes.rb - 匹配的文件扩展名,当多个周期中的文件名
http://www.misuse.org/science/2006/09/26/dynamic-css-in-ruby-on-rails/
它花了一些改变来说明在rails上的更新版本的ruby,但问题出现在routes.rb条目中。原始条目是这样的:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile',
:controller => 'rcss',
:action => 'rcss'
这并没有与回报率较新版本的工作,我发现这个解决方案的工作:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile.css',
:controller => 'rcss',
:action => 'rcss'
不过,现在我也很失望,我不能获得一个全面的文件类型扩展处理程序。该请求必须具有.css扩展名。进一步玩弄我想出了这个:
# dynamic CSS (stylesheets)
map.connect 'rcss/:rcssfile.:format',
:controller => 'rcss',
:action => 'rcss'
所以这是好得多。现在我可以请求一个以.foobar或其他方式结尾的文件,并将其与处理程序匹配。不是我一定会,但更多的是理解一切。
那么我试着创建一个看起来像“foo.net.rcss”的文件。现在看来,第一个点将所有东西都弄乱了。 “没有路由匹配rcss/foo.net.css”。我的问题如下:
如何匹配任何文件名和任何扩展名,无论文件名中有多少个点?
为什么第一个例子在后面的RoR版本中不起作用?
为什么多个圆点搞砸了匹配?
在此先感谢您的帮助。
-------更新-------
我正在使用Rails 3.0.5。按照一些研究,我可以缩短语法:
match 'rcss/:rcssfile', :to => 'rcss#rcss'
这似乎并没有工作的第一例的等效,但是,使用这种语法预计它的作品而已。
match 'rcss/:rcssfile:.:format', :to => 'rcss#rcss'
这也可以像我以前的例子#3一样工作,但是它仍然存在不匹配具有多个句点的文件的问题。
我曾尝试过使用这种方法,但发现'params [:rcssfile]'不包含文件扩展名。因此,浏览到'rcss/main.css'结束发送''main''作为参数,剥离''.css''扩展名。 – CodingWithSpike 2016-03-02 16:12:50