加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

资产管道 – 为什么Rails不会找到我的资产?

发布时间:2020-12-14 04:30:23 所属栏目:百科 来源:网络整理
导读:在生产模式下,rails似乎没有从资产管道中找到任何预编译的资产。 我正在使用rails 3.2.0和ruby 1.9.3在CentOS上的RVM内部运行。没有其他Web服务器与此应用程序一起运行。该应用程序最近才被更新为使用资产管道,因为它最初是一个rails 3.0应用程序。 运行后
在生产模式下,rails似乎没有从资产管道中找到任何预编译的资产。

我正在使用rails 3.2.0和ruby 1.9.3在CentOS上的RVM内部运行。没有其他Web服务器与此应用程序一起运行。该应用程序最近才被更新为使用资产管道,因为它最初是一个rails 3.0应用程序。

运行后

rake assets:clean
rake assets:precompile

正如我所料,我看到公共/资产中的哈希内容。文件末尾的散列与我在页面源中看到的一致。

然而在运行时,这是Rails试图提供的每个资产所看到的:

Started GET "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css" for 75.149.58.169 at 2012-03-14 11:42:43 -0700

ActionController::RoutingError (No route matches [GET] "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"):

我不是指每个资产所在的文件夹;所有对资产的引用如下所示:

//css:
.class {
  background: url(asset.png) no-repeat;
}

//erb:
<%= image_tag "asset.png" %>
<%= link_to "page",:class => "class" %>

production.rb中的资产管道相关设置:

config.serve_static_assets = false
config.assets.enabled = true
config.assets.compress = true
config.assets.debug = false
config.assets.compile = false
config.assets.digest = true

最后,来自config / application.rb的资产设置:

config.assets.enabled = true
config.assets.version = '1.0'

启动rails服务器进程的用户对public / assets有读,写和执行权限,所以我不认为这是一个权限问题。我错过了配置步骤吗?

编辑

我注意到没有错误说明资产没有被预先编译,所以我试图通过将“/assets/application-892c6227e631daf9a8e041b1d4d002ec.css”附加到主机路径的末尾,从网页访问样式表:

http://www.myapp.com"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"

这工作,样式表打开。

进一步研究这个问题产生了这篇文章:

application.css not being served as an asset

它似乎

config.serve_static_assets = false

只要我的Rails应用程序没有运行在Apache或nginx之后,这是一个不正确的设置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读