【问题标题】:Javascript won't load with .js.erb extensionJavascript 不会加载 .js.erb 扩展名
【发布时间】:2013-08-15 21:26:47
【问题描述】:

我的 rails 站点中有一个 javascript 文件,它可以很好地加载扩展名为 .js。

我需要在其中使用图像助手标签,因此根据文档我需要添加一个 erb 扩展 - 使其成为 .js.erb。

只要我将扩展名更改为 .js.erb(保留 javascript 文件原样,IE 没有 ruby​​),它就会中断并且 javascript 不再工作。

当我用 chrome 检查器检查时,javascript 内容如下:

(function() {


}).call(this);

但扩展名只是 .js 时也可以。

我做错了什么?

edit:: 如果没有 .erb 扩展名,相关的 javascript 行会在 chrome 检查器中返回这个:

function fancyViewReport() {
    return '<div class="demo-report-title"><a class="fancyReport" href="<%= asset_path 'demoreport.png' %>">Click <u>here</u> to view a demo report!</a></div>';
}

这个 javascript 文件正在通过 application.js 调用

【问题讨论】:

    标签: javascript ruby-on-rails erb


    【解决方案1】:

    据我所知,js.erb 是针对 ajax 类型的请求。我认为如果您的 ajax_method 调用在控制器 someController 下,并且如果您有 someController.js.erb 文件,则应该将其放入 app/views/someController 并确保您有类似的东西

    def ajax_method
        ...
        respond_to do |format|
          format.js
        end
      end
    

    【讨论】:

    • 我目前只是通过我的 application.js 文件调用我的 javascript 文件,并使用像这样的标准 javascript 助手标签 - 是不是不对?
    • 我问的原因是因为 css 似乎工作得很好,除了在 .css 之后添加 .erb 之外没有做任何事情
    • 对不起,我不太明白你在做什么,js文件是在哪里调用的
    【解决方案2】:

    好的,我最终通过创建一个新文件并将之前的 javascript 文件的内容复制粘贴到其中来解决此问题,这很奇怪。

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2019-04-27
      • 2018-06-22
      • 1970-01-01
      相关资源
      最近更新 更多