使用Rails 3.2.2和ruby 1.9.2,我无法在生产中提供资产。在为webapps配置服务器方面没有经验。
我在applictation.html.erb中有以下代码,
<a href="/"><img src="/assets/topbar.png" border="0" alt="My LOGO"></a>
我把topbar.png放在app / assets / images /中。它在开发模式下按预期工作,在png存在时显示,如果删除png则不显示。
它没有出现在制作中。到目前为止,我们已经完成了以下工作。该应用程序确实运行,但它不显示上述资产。
<VirtualHost *:8081>
ServerName dev.mycompany.com:8081
DocumentRoot /var/www/vhosts/dev.mycompany.com/webapps/
# PassengerAppRoot /var/www/vhosts/dev.mycompany.com/webapps/testapp/public
# PassengerLogLevel 3
RackBaseURI /myRailsTest
<Directory /var/www/vhosts/dev.mycompany.com/webapps/myRailsTest>
AllowOverride all
Allow from all
Options -MultiViews
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode on
</IfModule>
</Directory>
</VirtualHost>
我是否需要做更多的事情来配置apache服务器?我正在读这个:http://guides.rubyonrails.org/asset_pipeline.html,但发现新手非常密集。
我可以尝试什么?我读到的一件事是:“你应该将app / assets用于必须在服务之前进行一些预处理的文件。在生产中,Rails默认将这些文件预编译为public / assets。”但实际上,我无法看到它对我这样做。那是问题吗?谢谢!
答案 0 :(得分:1)
查看导轨指南的这一部分:http://guides.rubyonrails.org/asset_pipeline.html#in-production
基本上,您有两个选择:
bundle exec rake assets:precompile
您应该使用config.assets.compile = true
在布局和视图中创建image_tag
帮助器,因为在预编译阶段,MD5是从编译文件的内容生成的,并插入到文件名中被写入光盘。