And*_*vey 9 ruby-on-rails heroku asset-pipeline
我正在向Heroku部署Rails 3.2应用程序.我根据https://devcenter.heroku.com/articles/rails3x-asset-pipeline-cedar在本地预编译资产.
但我得到了
ActionView::Template::Error (devise/sessions.js isn't precompiled):
Run Code Online (Sandbox Code Playgroud)
有人遇到过这种情况么?
什么是确保Devise javascripts预先通过的正确方法.
谢谢!
谢谢你提出的所有建议.经过一番思考后,我意识到问题在于应用程序如何配置为调用控制器特定的javascript.如果有其他人遇到这个问题,这就是我做的.
我一直在布局文件中通过以下标记加载特定于控制器的.js.
<%= javascript_include_tag "application", params[:controller] %>
Run Code Online (Sandbox Code Playgroud)
问题是,如果特定的cotroller.js文件不存在,则会失败.在我的情况下,登录页面失败,因为我没有创建一个devise/sessions.js文件.
我本可以创建这个文件,但我觉得这是一个混乱的方法.我不喜欢有很多空文件的想法.
相反,我明确地从视图中调用特定于控制器的javascripts
<% javascript 'controller.js' %>
Run Code Online (Sandbox Code Playgroud)
在application_helpers中使用以下帮助器
def javascript(*files)
content_for(:head) { javascript_include_tag(*files) }
end
Run Code Online (Sandbox Code Playgroud)
到目前为止似乎工作正常.
再次感谢您的建议.
小智 5
我的解决方案
<%= javascript_include_tag "application", controller_name if controller_name != "sessions" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1697 次 |
| 最近记录: |