1

我要求提供 JS 文件但 Rails 提供 HTML 文件的奇怪问题。而且它只在我的登台服务器(Heroku)上,而不是在我的本地机器上。

我有一个动态 Javascript 文件,需要通过脚本将其包含在其他页面中,以便如下所示:

<script type="text/javascript" src="http://example.com/embed.js></script>

该嵌入映射到也处理 HTML 的控制器和操作。相关路线如下所示:

match "/embed(.:format)" => "articles#embed", as: "embed"

控制器动作非常标准。

def embed
  respond_to do |format|
    format.html do
      #it renders some HTML
    end
    format.js #no block is given
  end
end

而且,我在 app/views/articles 下有两个视图

  • 嵌入.html.haml
  • 嵌入.js.coffee

在我的本地机器上,请求 localhost:3000/embed.js 有效。它可以毫无问题地呈现 Javascript。但是,在我的登台服务器上,这是我在日志中看到的内容:

Started GET "/embed.js" for 124.168.219.36 at 2012-11-04 00:23:01 +0000
Processing by ArticlesController#embed as JS
  Rendered articles/embed.html.haml (1.5ms)
Completed 500 Internal Server Error in 2ms

内部服务器错误不是问题。问题在于它将请求识别为 JS,但决定在暂存时呈现 HTML 模板。

这是怎么回事?

4

0 回答 0