我有一个可供不同客户使用的 Sinatra 应用程序。我希望为每个客户显示客户的公司 Logo 和自定义 layout.erb。
每个人的代码库基本相同。我所需要的只是一种方法,可以轻松地在“公共(public)”目录和“layout.erb”中维护一组不同的文件,并且在部署到远程服务器时,仅自动复制特定客户端的文件。
最佳答案
一种可能的方法是为每个客户端设置一个view
和public
目录,并设置正确的:views
和:public
每个请求的选项
get '/:client/...' do
set :views, File.dirname(__FILE__) + "/views/#{params[:client]}"
set :public, File.dirname(__FILE__) + "/public/#{params[:client]}"
# Your code
end
根据评论编辑:
在 config
block 中设置您的公共(public)文件夹。
现在为每个客户端添加一个子文件夹到您的公用文件夹。访问特定文件所需要做的就是修改 View 以获取 /#{params[:client]}/logo.png
而不是 /logo.png
关于Ruby Sinatra - 为公共(public)文件夹中的文件添加自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1787877/