Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails中的Raphael图像URI_Javascript_Ruby On Rails_Raphael - Fatal编程技术网

Javascript Rails中的Raphael图像URI

Javascript Rails中的Raphael图像URI,javascript,ruby-on-rails,raphael,Javascript,Ruby On Rails,Raphael,我知道我们可以用拉斐尔这样做 var my_image = paper.image("computer.png", 0, 0, 100, 50) 问题是,当此代码放入Rails文件夹结构中的/app/assets/javascripts时,它无法访问URI,因为在生产中,我们只能在控制器或视图中执行asset\u path(“computer.png”) 现在,如何解决这个问题?哪一个是获取javascript资产文件中的相对URI?我正在考虑将图像作为SVG符号放在index.html.er

我知道我们可以用拉斐尔这样做

var my_image = paper.image("computer.png", 0, 0, 100, 50)
问题是,当此代码放入Rails文件夹结构中的/app/assets/javascripts时,它无法访问URI,因为在生产中,我们只能在控制器或视图中执行
asset\u path(“computer.png”)

现在,如何解决这个问题?哪一个是获取javascript资产文件中的相对URI?我正在考虑将图像作为SVG符号放在index.html.erb中。因为那是一个.erb文件,所以我们可以使用
assets\u path
。不,如何使用拉斐尔访问符号

还是有更好的解决办法?谢谢

您可以尝试使用gem

在application.js中

//= require app_assets
此指令在全局范围中添加方法资产路径

添加到过滤器文件
*.png
。为此,请添加初始化器:

# config/initializers/js_assets.rb

JsAssets::List.allow << '*.png'
var path_to_computer = asset_path('computer.png')

// the function will return for development:
// /assets/computer.png
//
// and for production
// /assets/computer-5eb3bb250d5300736006c8944e436e3f.png