加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 具有骨干轨的Rails:资源助手(image_path)在EJ

发布时间:2020-12-16 20:01:12 所属栏目:百科 来源:网络整理
导读:我有一个使用 codebrew/backbone-rails的Rails 3.1应用程序.在.jst.ejs模板中,我想包括一个图像,像这样: img src="%= image_path("foo.png") %"/ 但是,资源帮助者当然不可用JavaScript. 链接ERB(.jst.ejs.erb)不起作用,因为EJS语法与ERB冲突. 这是我所知道
我有一个使用 codebrew/backbone-rails的Rails 3.1应用程序.在.jst.ejs模板中,我想包括一个图像,像这样:
<img src="<%= image_path("foo.png") %>"/>

但是,资源帮助者当然不可用JavaScript.

链接ERB(.jst.ejs.erb)不起作用,因为EJS语法与ERB冲突.

这是我所知道的:

>资产助手在浏览器中不可用,所以我需要在服务器端运行它们.
>我可以通过使服务器将各种资源路径转换成HTML(通过数据属性或< script>和JSON)并在JS中读取它们来解决这个问题,但是这似乎是相当的笨拙.

有没有办法在EJS文件中使用资产助手?

解决方法

实际上,有一种方法来链接.jst.ejs.erb文件,尽管它是相当无证的,我只是通过查看EJS测试用例来找到它.您可以告诉EJS使用{{}}(或[%%]或任何您想要的)而不是<%%>,然后ERB将不会尝试评估您的EJS调用.

确保在你的代码中需要EJS(我刚刚在我的Gemfile中包含gem’ejs’),然后创建一个初始化器(我称之为ejs.rb),包括以下内容:

EJS.evaluation_pattern    = /{{([sS]+?)}}/
EJS.interpolation_pattern = /{{=([sS]+?)}}/

然后,请确保将您的模板重命名为.jst.ejs.erb,并替换现有的<%%>使用{{}}的EJS解释代码.如果要使用除{{}}之外的其他东西,请更改初始化程序中的正则表达式.

我希望在Sprockets中有一个选项来通过配置来处理这个,而不是明确地包含EJS,但是到目前为止,我无法做到这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读