【问题标题】:Rails with AngularJS application.js refused MIME type ('text/html')带有 AngularJS application.js 的 Rails 拒绝 MIME 类型('text/html')
【发布时间】:2015-08-21 12:54:27
【问题描述】:

我按照这个教程:https://thinkster.io/angular-rails/ 来实现 Rails 和 AngularJS。

我有一个 application.html.erb 文件,我在其中使用了这一行:

<%= javascript_include_tag 'application' %>

包含 js 资产管道。

在开发环境中,它工作正常。当我切换到生产时,会显示以下错误:

拒绝执行来自 'http://localhost:3000/javascripts/application.js' 的脚本,因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查。

我尝试使用这一行预编译 application.js 文件

config.assets.precompile += %w( application.js )

但它没有用。有人吗?

【问题讨论】:

    标签: ruby-on-rails angularjs asset-pipeline mime production-environment


    【解决方案1】:

    我遇到了同样的问题,我发现这是由于路由错误。我的 routes.rb 文件中有一条包罗万象的路线:

    root 'home#index', anchor: false
    

    Rails 在该路由中提供 HTML 页面而不是提供资产,这导致 MIME 错误。

    我通过将 routes.rb 文件中的代码替换为不会捕获资产请求的模式来修复它:

    root 'home#index'
    get ':path', to: 'home#index', format: false
    

    您可能还需要根据您的 Web 服务器配置提供静态资产(对我来说,这是在 config/environments/staging.rb 中):

    config.serve_static_files = true
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2018-11-25
      • 2018-07-24
      • 2014-05-27
      • 1970-01-01
      • 2020-11-10
      • 2020-07-12
      • 2014-12-31
      • 2018-12-13
      • 2011-09-22
      相关资源
      最近更新 更多