【问题标题】:Rails 3.2 Deploy to Subdirectory Kind of WorkingRails 3.2 部署到子目录的工作方式
【发布时间】:2023-03-05 12:40:01
【问题描述】:

我正在尝试将我的 Rails 3.2 应用程序部署到 Apache 服务器上的子目录 /support。查阅各种帖子,似乎有帮助的唯一解决方案涉及在服务器上设置symbolic link 并稍微更改css图像引用(css url引用中的/assets之前需要两个点'..' - 我可以'现在似乎找不到那个帖子了)。我在使用 Capistrano 部署到生产中取得了成功,但奇怪的是,一段时间后发生了一些变化,/support 引用中断并且样式表不加载。有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 capistrano asset-pipeline subdirectory


    【解决方案1】:

    哦,不,请不要以这种方式将 rails 部署为 sub-uri,你会让自己陷入困境。

    据我所知,(根据这篇文章:http://kb.site5.com/ruby-on-rails/how-to-deploy-a-rails-3-application-to-a-sub-directory/)您创建了软链接,修改了您的 routes.rb,并更改了 environment.rb 中的 RAILS.root,还更改了您的资产文件......所有其中一些使您的 Rails 应用程序混乱。

    我建议你使用 'passenger' 作为 Rails 服务器并查看这篇文章:http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_rack_to_sub_uri,它更容易和更简单

    【讨论】:

    • 感谢您的及时回复!此修复似乎完全在服务器端,这与大多数帖子相反。您是建议不要对 Rails 应用程序进行任何更改作为最简洁的方式吗?
    • @TimK。是的,我建议您不要修改 Rails 应用程序的 1 行代码,而只需配置服务器设置。而且我相信这种方法是通常/常见的方式。据我所知,通过更改 routes.rb 文件部署到 sub-uri 非常奇怪,就像一个新手 :)
    • 您的建议很有帮助。我现在只在服务器端进行了修改,但资产仍然存在问题。在我的 css 文件中,我可以输入“/support/assets...”,它适用于生产服务器而不是开发,或者“/assets”,它适用于开发而不是生产。有意义吗?
    • 在您的 CSS/JS 文件中使用 asset_path。见guides.rubyonrails.org/asset_pipeline.html
    • 我现在正在使用asset_path,但它停留在/assets...并且无法识别子目录/support/assets...有什么想法吗?
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多