heroku Rails 4上的一个资产404文件夹错误

时间:2016-10-19 20:42:00

标签: css ruby-on-rails heroku asset-pipeline

我的Rails 4应用程序上的所有样式表子文件夹都在Heroku中工作,除了一个。没有工作的那个在开发中工作很快,但是当我部署它时,它不起作用。它显示404错误并加载除scss之外的所有内容。除了root,我还有2个不同的命名空间,#34;博客"和" admin"。它是" admin"子文件夹不起作用,但它的结构与" blog"相同。子文件夹和" theme1"主站点的子文件夹...这两个都很好地服务于资产。

我已经尝试了资产管道的所有常规资产调试(serve_static_files,清理资产,预编译),但它并没有什么不同,因为我的资产大部分工作,而不是这个文件夹。< / p>

这是我的文件结构: 样式表

├── admin_manifest.scss # this is precompiled
├── _admin
|   ├── css
         ├── "10 stylesheets"
|   └── admin.scss #@imports of the 10 stylsheets & fonts 
├── application.scss # this is precompiled and includes the theme1_manifest.scss as well as plugins, jquery, etc
├── blog_manifest.scss # this is precompiled
├── _blog
|   ├── shortcodes.scss
|   └── theme_style.scss
├── theme1_manifest.scss # this is precompiled
├── _theme1
|   ├── shortcodes.scss
|   └── theme_style.scss

同样,blog和theme1子文件夹工作正常,admin子文件夹在开发中工作,我只是无法弄清楚它为什么不能在生产中工作。

1 个答案:

答案 0 :(得分:2)

问题出现在生产环境中,在开发环境中完美运行表明资产没有得到遵守。

这是与Heroku 中Rails应用程序配置相关的问题。

一个解决方案在开发环境中预编译资产并将编译后的资产上传到heroku

要了解有关此内容的更多信息,请参阅针对rails应用的Heroku配置

请按照以下步骤操作:

确保文件/config/environments/production.rb中的以下内容:

config.cache_classes = true
config.serve_static_assets = true
config.assets.compile = true
config.assets.digest = true

在生产中添加gem rails_12factorpg gem

gem 'rails_12factor'

预编译css文件:

bundle exec rake assets:precompile RAILS_ENV=production

提交并推送css文件到heroku:

git add .
git commit -m "Precompiled assets"
git push heroku master