Ruby Sinatra - 为公共(public)文件夹中的文件添加自定义路由

标签 ruby ssh sinatra scp

我有一个可供不同客户使用的 Sinatra 应用程序。我希望为每个客户显示客户的公司 Logo 和自定义 layout.erb。

每个人的代码库基本相同。我所需要的只是一种方法,可以轻松地在“公共(public)”目录和“layout.erb”中维护一组不同的文件,并且在部署到远程服务器时,仅自动复制特定客户端的文件。

最佳答案

一种可能的方法是为每个客户端设置一个viewpublic 目录,并设置正确的: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/

相关文章:

ruby-on-rails-3 - 单独的 REST JSON API 服务器和客户端?

mysql - 如何从 MySQL 服务器建立 SSH 隧道

ruby - 试图避免 "attack reported by Rack::Protection::AuthenticityToken"消息

ruby-on-rails - 参数超出范围 Rails 4 和 bootstrap3-datetimepicker-rails

ruby - 无法在 Ubuntu 20.04 中捆绑更新 --bundler

ruby - 在没有身份验证的情况下通过 Pony mail 发送电子邮件?

python - 监视文件系统中发生的事件

ssh - Google云引擎,两个centos7实例之间的ssh失败

java - 使用eclipse使用ssh连接到远程机器[linux服务器]

ruby - Sinatra:热代码插入生产?