我试图找出在Rails中定义资产的辅助路由的最佳方法。
例如,我在这里有一个javascript文件:
/assets/scripts/my-script.js
但是我想创建一个到同一个文件的新路由,例如:
/api/v1/my-script.js
我试过了:
namespace :api do
namespace :v1 do
resources :images, only: [:show, :create]
match 'my-script.js', :path => '/assets/scripts/my-script.js', :via => 'get'
end
end
但它确实转发到/assets/scripts/my-script.js。我想保留新的浏览器网址,而不是转发到原始路径。
答案 0 :(得分:1)
我不确定路线是否可以这样使用。如果你愿意,你可以制作一个为这些资产提供服务的控制器。
这是未经测试的,但应该深入了解。
namespace :api do
namespace :v1 do
resources :images, only: [:show, :create]
get 'my-script.js', to: 'scripts#my'
end
end
和
class Api::V1::ScriptsController < ApplicationController
def my
send_file ActionController::Base.helpers.javascript_path("my-script.js")
end
end
当然有点笨拙,可以概括为任何剧本服务。