需要 Rails 应用中本机 HTML 的图像路径
Need path to image for native HTML within a Rails app
Rails4,Ruby2,jQuery1.11
我的应用程序包含使用 DataTables 构建的表格。我正在使用 jQuery 来修改那些表的 HTML。我正在尝试添加 assets/images 中的图像,但我似乎无法确定访问它所需的路径。由于我在预处理后编辑 HTML,它是原生的 HTML,我不能在其中使用 Rails 变量。
我可以 Rails 识别图像在那里,或者更具体地说 Ruby 我的。由于我使用的是 JavaScript,路径“../images”可以访问图像。但是,这不适用于 HTML.
我的问题是,鉴于图像在 app/assets/images 中,我必须为本机 HTML 指定什么路径才能访问该图像?
$('input[type=search]').each(function () {
var $this = $(this);
$this.addClass("theSearch");
$('.theSearch')
.append('<img id="clrImg" class="clrSearch" src="../images/DeleteRed.png" />');
...
FWIW,这将是一个在单击时清除搜索字段的按钮。现在,它正在使用 "X" 工作,但这很丑....
我应该注意到,我已经尝试了许多 /app/assets/images/...
的排列组合
想通了...
资产不仅经过预处理,而且在 public 中进行了丑化和安装。我将它复制到 public/assets/images 并且能够以 assets/images/DeleteRed.png.
的形式访问它
谢谢...
更新:
这仅在某些情况下有效。当我使用该应用程序时,我发现 URI 发生了变化。绝对 URI 始终有效,但存在一些问题:
http://myprefix.mydomain.com/assets/images/DeleteRed.png
例如,当我将其推送到生产环境时,myprefix 或 mydomain 发生变化,这将失败。最好测试系统变量,搭建测试、开发、生产等路径
如果您的 javascript 文件以 .js.erb
扩展名存储在 app/assets/javascripts
中,您可以像在 HTML 中一样插入 Ruby 代码查看:
$('input[type=search]').each(function () {
// ...
$('.theSearch')
.append('<img id="clrImg" class="clrSearch" src="<%= image_path('DeleteRed.png') %>" />');
// ...
});
js文件会被asset pipeline自动预处理,image_path
Rails helper会保证路径永远正确(如果你的图片存放在app/assets/images
,即 — 无需将其移动到 public
!)。
Rails4,Ruby2,jQuery1.11
我的应用程序包含使用 DataTables 构建的表格。我正在使用 jQuery 来修改那些表的 HTML。我正在尝试添加 assets/images 中的图像,但我似乎无法确定访问它所需的路径。由于我在预处理后编辑 HTML,它是原生的 HTML,我不能在其中使用 Rails 变量。
我可以 Rails 识别图像在那里,或者更具体地说 Ruby 我的。由于我使用的是 JavaScript,路径“../images”可以访问图像。但是,这不适用于 HTML.
我的问题是,鉴于图像在 app/assets/images 中,我必须为本机 HTML 指定什么路径才能访问该图像?
$('input[type=search]').each(function () {
var $this = $(this);
$this.addClass("theSearch");
$('.theSearch')
.append('<img id="clrImg" class="clrSearch" src="../images/DeleteRed.png" />');
...
FWIW,这将是一个在单击时清除搜索字段的按钮。现在,它正在使用 "X" 工作,但这很丑....
我应该注意到,我已经尝试了许多 /app/assets/images/...
的排列组合想通了...
资产不仅经过预处理,而且在 public 中进行了丑化和安装。我将它复制到 public/assets/images 并且能够以 assets/images/DeleteRed.png.
的形式访问它谢谢...
更新: 这仅在某些情况下有效。当我使用该应用程序时,我发现 URI 发生了变化。绝对 URI 始终有效,但存在一些问题:
http://myprefix.mydomain.com/assets/images/DeleteRed.png
例如,当我将其推送到生产环境时,myprefix 或 mydomain 发生变化,这将失败。最好测试系统变量,搭建测试、开发、生产等路径
如果您的 javascript 文件以 .js.erb
扩展名存储在 app/assets/javascripts
中,您可以像在 HTML 中一样插入 Ruby 代码查看:
$('input[type=search]').each(function () {
// ...
$('.theSearch')
.append('<img id="clrImg" class="clrSearch" src="<%= image_path('DeleteRed.png') %>" />');
// ...
});
js文件会被asset pipeline自动预处理,image_path
Rails helper会保证路径永远正确(如果你的图片存放在app/assets/images
,即 — 无需将其移动到 public
!)。