为什么“rails server -e production”使它“无路由匹配”/“并且样式表没有加载?
它运行Rails 3.0.0或Rails 3.0.5(使用Ruby 1.9.2)
在开发模式下
rails server
然后http:// localhost:3000工作正常, http:// localhost:3000 / foos将加载stylesheet.css
但是当它是
rails server -e production
然后突然间, http:// localhost:3000给出:
No route matches "/"
和http:// localhost:3000 / foos可以运行,但没有加载stylesheet.css
并在浏览器中打开它显示:
No route matches "/stylesheets/scaffold.css"
生产与开发需要特殊的路线吗? (还是出于其他原因?)
你需要设置
config.serve_static_assets = true
在config/environments/production.rb
。 它可能已经在那里被评论出来了。
默认情况下,Rails不会在生产中自行提供静态文件,因为像Nginx或Apache这样的完整Web服务器无论如何都会自动为它们提供服务。
- 根据用户历史自定义交易应用程序的主页和电子邮件:如何在Rails / postgreSQL上以正确的方式执行此操作?
- ruby中内核#yield_self,yield(self)和Object#tap之间的区别
- 不支持从define_method()定义的方法传递super的隐式参数
- Rails + MongoID +简单forms关联:#Mongoid :: Relations :: Metadata的未定义方法`options’
- Delayed Job如何在Ruby on Rails中工作?
- Rails重置所有Postgres序列?
- 使用fields_for – Rails创建多个记录
- 使用`:has_many:through`记录关联处理复选框表单
- Rails – 添加HTML属性而不设置值