ruby-on-rails - 如何在开放式换档 rails 中使用 Assets

标签 ruby-on-rails ruby-on-rails-3.2 openshift

我在 openshift rails 中部署我的代码,但它没有正确获取 Assets 。 它既不加载 javascript 也不加载图像。 如何让它发挥作用?

最佳答案

您首先要检查的是 Assets 是否存在于您的应用程序中。 This scriptbuild.sh 脚本(接下来提到)之前运行。它会尝试为您的 public/assets 文件夹 (here is the reasoning behind this) 创建符号链接(symbolic link)。即使您拥有该目录,rake 任务仍然有效;每次推送都会删除 Assets 。

每当您推送到您的 git 存储库时,您的 Assets 应该正在编译。这由 this script 负责在 Ruby 1.9 cartridge 中(这是由服务运行的,你无法控制它)。如您所见,只要您有 Gemfile(所有 Rails 应用程序都应如此),它就会运行 bundle exec rake assets:precompile

综上所述,您应该做的第一件事是检查您的 .openshift/action_hooks 以确保您没有运行任何可能覆盖您的 public/assets 目录。您可以将它们与 here 进行比较.

接下来您应该做的实际上是检查您的 OpenShift 主机上的目录。您可以通过 SSH 连接到您的应用程序 (instructions are here) 来完成此操作。然后检查您的 public/assets 目录。注意:一些输出已用 .... 缩短。

# First we make sure it is a symlink.
> file $OPENSHIFT_REPO_DIR/public/assets
..../app-root/runtime/repo/public/assets: symbolic link to `..../data//assets'

# Then we see if there is anything in it
> ls $OPENSHIFT_REPO_DIR/public/assets
.... (should have a bunch of.js, .css, etc files)

如果那个目录是空的,可能编译资源有问题。当你 git push 时,你应该注意输出,看看是否有任何失败的迹象(你可能想使用 tee 捕获输出,比如:git push 2>&1 | tee git_push.log).如果目录中有 Assets ,请按照 these steps 检查您的日志.

如果您仍有问题,请访问我们的 IRC channel并且应该有人能够亲自提供帮助。

关于ruby-on-rails - 如何在开放式换档 rails 中使用 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278585/

相关文章:

mysql - 在 Rails 3.2.13 应用程序中,我错误地生成了索引

ruby-on-rails - 回形针 Errno::EACCES(权限被拒绝 -/system)

authorization - 我在 openshift 上遇到授权 token 问题

openshift - 如何删除或覆盖 OpenShift 中的 secret ?

ruby-on-rails - 使 Poltergeist 不区分大小写

ruby-on-rails - Rails 延迟作业和 docker : adding more workers

ruby-on-rails - Hartl Rails 教程 5.3.4 : 'read' : Is a directory @ io_fread) error

oauth-2.0 - 身份验证问题,可以将 kerberos 桥接到 oauth 吗?

ruby-on-rails - Rails 4 – 如何从 NoMethodError 中解救并继续尝试方法?

ruby-on-rails - 缺少必需的 key