ruby-on-rails – Apache不会为rails app提供静态资产

我正在尝试配置我的apache服务器,以便从我的rails应用程序提供静态资产.我已经尝试了建议的配置,但我的资产仍然没有显示,当我试图直接访问它时,我刚刚遇到一个rails错误,没有找到匹配的控制器,但资产的东西应该由apache直接处理我认为.
我的apache配置如下所示:
<VirtualHost *:80>
ServerName xxx
DocumentRoot /home/xxx/test/public
PassengerEnabled off

<LocationMatch "^/assets/.*$">
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault "access plus 1 year"
</LocationMatch>
ProxyPass / http://127.0.0.1:9292/
ProxyPassReverse / http://127.0.0.1:9292/
</VirtualHost>

我错过了什么吗?

解决方法

我用了,
RAILS_ENV=production bundle exec rake assets:precompile

为了使一切正常,我将其添加到config / application.rb …

module MyApp
  class Application < Rails::Application
.
.
    config.assets.precompile += ['custom.css']    
    config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)
.
.
  end
end

(我创建了custom.css.scss.但是Rails没有识别.scss,如上所示.)我假设在预编译之后所有资产都出现在public / assets文件夹中.我不明白你在使用LocationMatch做什么,原谅我的无知.此外,我没有使用端口80.我使用了8000.不确定这是否有所作为.

另外,config / environments / production.rb中有一个设置,

# disable Rails's static asset server (Apache or Nginx will already do this).
config.serve_static_assets = false

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...