我需要在Rails资产管道中的HTML5画布上显示图像,但我需要知道JavaScript中资产的路径.我正在为应用程序的其他部分使用js-routes,但它似乎没有提供一种方法来获取资产管道中的某些东西.
从JavaScript获取Rails资产(例如图像)路径的正确方法是什么?
我正在使用browserify-rails并且我正在尝试使用sprockets来预处理包含sprockets指令的文件,因此当我require()使用browserify时,它将包含生成的JavaScript.
sprockets指令尝试包含gem js-routes的输出,以便允许我从clientside访问Rails路由.
这是我的设置(内app/assets/javascripts):
system/
rails_routes.js
application.js
Run Code Online (Sandbox Code Playgroud)
application.js是主文件,它运行应用程序的其余部分.我希望能够做类似的事情
var rr = require("./system/rails_routes.js");
Run Code Online (Sandbox Code Playgroud)
在其中,并访问路由对象.
在内system/react_routes.js,我有以下内容:
//= require js-routes
console.log("Does this work?");
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我配置js-routes为将输出放在一个被调用的对象中module.exports,以符合CommonJS模型,如railsware/js-routes#121中所述)
唯一的问题是,当我查看生成的bundle时,sprockets指令仍然存在并且尚未展开.
该console.log电话还存在,并得到我时执行require()该模块.
有没有办法让这个工作?在使用browserify-rails捆绑文件之前让链接器预处理文件的正确方法是什么?
javascript ruby-on-rails sprockets js-routes browserify-rails
我正在尝试将JS 路由 gem与来自 Rails 5.1 的webpacker一起使用,但无法弄清楚如何js-routes.js.erb在 webpack 的app/javascript/packs/application.js.
import 'js-routes'
造成
Uncaught Error: Cannot find module "js-routes"
这可能意味着 webpack 无法在包含的 gem 中找到 javascript。这可能与这个webpacker 的 github 问题有关。
目前解决此问题的最佳方法是什么?
谢谢!