我在使用warbler将其部署为war文件的RoR应用程序上做了一些工作。在我参与之前,应用程序中的少数图像都在资产管道中,但我的角色是引入滑动地图和自行开发的地图图块。
因为瓷砖占用了大量空间,并且因为它们不会像应用程序那样频繁地改变,所以我们只想从public/images/tiles
提供服务。将部署应用程序其余部分的war文件,然后将tile解压缩到正确的目录中。
这在开发模式下工作正常,但warbler部署使用上下文路径,并且tile得到404,因为它们位于/ contextpath / images,而不是/ images
我以前没有在一个犹豫不决的环境中工作过,而其他队员本周正好去度假(哈哈!)。 Nick Sieger关于在Warbler: Where are my images使用config.action_controller.asset_host
的建议破坏了通过资产工作的图像和css,所以我要感谢其他任何允许资产和公众共存的建议。
答案 0 :(得分:4)
在production.rb中尝试此行config.assets.precompile += %w( *.js *.scss *.coffee *.css )
,然后运行jruby -S rake assets:precompile
。
它会将你所有的资产编译成静态资产,然后warbler会相应地打包它们,它应该可以解决你的问题。
您可以检查的另一件事是如何指向视图中的图像。如果您希望在/image
中找到它们,则应将路径写为<%= image_tag "\image" %>
。关注尾随\
。