我有一个基于网络的应用,后端基于 Rails 5。我正在使用 AngularJS 作为前端。我没有使用资产管道来提供任何静态内容,所有脚本(JS& CSS)都加载在位于 index.html 文件中在public directory
中,我在那里使用角度 ng-route 来进一步管理位置。
问题出现在我的 HTML 页面中,我需要使用 HTML图片标记包含图片,问题是服务器找不到图像文件。
<img src="assets/images/logo.jpg" style="padding-bottom:20px;" />
我尝试将图片保存在app/assets/images
和public/assets/images
目录中,但在所有实例中,我收到路由错误,指出我的rails服务器控制台中找不到路由。
参考几个堆栈溢出答案,我在配置development.rb文件中尝试了这一行:
config.public_file_server.enabled = true
但它没有用。那么如何在不使用Rails Assetpipeline的情况下提供图像?
答案 0 :(得分:3)
要在不使用资产管道的情况下投放图像,请将图像放在public
目录中。
在视图中使用your_app/public/images/logo.jpg
引用<img src="/images/logo.jpg
处的图片。
Rails还为此提供了一个帮助方法,它生成相同的代码,但提供了一些额外的Rails功能:\
<%= image_tag('/images/logo.jpg') %>
同样,您省略了路径的public
部分。此外,我建议不要在public
中有一个名为assets
的目录 - 它将被资产管道覆盖。它也会让你感到困惑。我将该目录名称更改为其他名称。