【问题标题】:Rails4: asset pipeline (javascripts) routing errorRails4:资产管道(javascripts)路由错误
【发布时间】:2016-04-22 16:53:59
【问题描述】:

我在 Rails 4.2.2 应用程序中使用(凌乱的)Bootstrap 主题。当我输入 localhost:3000 时,我的 index.html.erb 视图上的所有内容都会完美加载。当我尝试在另一个页面上使用后退按钮 (root_path) 查看相同的 index.html.erb 视图时,我应该被带到 localhost:3000,但只有导航栏加载,并且我在服务器中收到以下错误日志。当我刷新同一页面 (localhost:3000) 时,一切正常。

我运行 bundle exec rake assets:clean assets:precompile 并重新启动服务器,没有任何改变。

我做错了什么?我不明白为什么某些 JS 文件可以正常工作并且我收到这两个特定 JS 文件的错误 - 或者为什么在刷新时一切都正确加载。

谢谢。

PS 编辑:我正在部署到 Heroku,但这在 dev 和 Heroku 中都失败了,所以希望在 dev 中修复就足够了。

服务器日志

ActionController::RoutingError (No route matches [GET] "/javascripts/modernizr-custom.js"):
.
.
.
ActionController::RoutingError (No route matches [GET] "/js/jquery.magnific-popup.js"):

index.html.erb:

<%= javascript_include_tag "modernizr-2.8.3.min" %>
<%= javascript_include_tag "articles" %>
<%= javascript_include_tag "bootstrap" %>
<%= javascript_include_tag "bootstrap.min" %>
<%= javascript_include_tag "classie" %>
<%= javascript_include_tag "comments" %>
<%= javascript_include_tag "html5shiv" %>
<%= javascript_include_tag "jquery-1.10.2" %>
<%= javascript_include_tag "jquery.corner" %>
<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "jquery.magnific-popup" %>
<%= javascript_include_tag "modernizr-2.8.3.min" %>
<%= javascript_include_tag "modernizr-custom" %>
<%= javascript_include_tag "owl.carousel" %>
<%= javascript_include_tag "PIE_IE678" %>
<%= javascript_include_tag "script" %>
<%= javascript_include_tag "stickUp.min" %>
<%= javascript_include_tag "uiMorphingButton_inflow" %>
<%= javascript_include_tag "welcome" %>
<%= javascript_include_tag "wow.min" %>

assets.rb:

#Javascripts
Rails.application.config.assets.precompile += %w( application.js )
Rails.application.config.assets.precompile += %w( articles.coffee )
Rails.application.config.assets.precompile += %w( bootstrap.js )
Rails.application.config.assets.precompile += %w( bootstrap.min.js )
Rails.application.config.assets.precompile += %w( classie.js )
Rails.application.config.assets.precompile += %w( comments.coffee )
Rails.application.config.assets.precompile += %w( html5shiv.js )
Rails.application.config.assets.precompile += %w( jquery-1.10.2.js )
Rails.application.config.assets.precompile += %w( jquery-1.9.1.min.js )
Rails.application.config.assets.precompile += %w( jquery.corner.js )
Rails.application.config.assets.precompile += %w( jquery.js )
Rails.application.config.assets.precompile += %w( jquery.magnific-popup.js )
Rails.application.config.assets.precompile += %w( modernizr-2.8.3.min.js )
Rails.application.config.assets.precompile += %w( modernizr-custom.js )
Rails.application.config.assets.precompile += %w( owl.carousel.js )
Rails.application.config.assets.precompile += %w( PIE_IE678.js )
Rails.application.config.assets.precompile += %w( PIE_IE9.js )
Rails.application.config.assets.precompile += %w( script.js )
Rails.application.config.assets.precompile += %w( stickUp.min.js )
Rails.application.config.assets.precompile += %w( uiMorphingButton_inflow.js )
Rails.application.config.assets.precompile += %w( welcome.coffee )
Rails.application.config.assets.precompile += %w( wow.min.js )

application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require bootstrap
//= require_tree .

jquery.magnific-popup.js 和modernizr-custom.js 都在我的javascripts 文件夹中。

【问题讨论】:

    标签: javascript jquery ruby-on-rails twitter-bootstrap


    【解决方案1】:

    听起来问题可能是涡轮链接。它可以像那样影响页面的状态。如果您认为您的应用程序不能从使用 AJAX 加速页面渲染中受益,您不妨将其移除。

    More info about Turbolinks

    【讨论】:

    • 这解决了问题,现在页面加载正常。谢谢!
    猜你喜欢
    • 2012-01-23
    • 2014-03-01
    • 2013-12-10
    • 1970-01-01
    • 2011-10-07
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    相关资源
    最近更新 更多