2010-09-27 9 views
6

Rails 3 aggiunge automaticamente un'intestazione se si utilizza IE8? Sto vedendo il meta tag per X-UA-Compatible impostato su "IE = 8.0000" e sta rovinando una delle mie visualizzazioni.Rails 3 aggiunge automaticamente l'intestazione X-UA-Compatible?

Non riesco a trovare nient'altro che lo faccia, quindi ho pensato di chiedere il cervello qui.

Grazie, Ruprict

risposta

7

Se abbiamo uno sguardo a tutti i middleware caricate in un app di vaniglia Rails3:

rake middleware 
(in /private/tmp/bla) 
use ActionDispatch::Static 
use Rack::Lock 
use ActiveSupport::Cache::Strategy::LocalCache 
use Rack::Runtime 
use Rails::Rack::Logger 
use ActionDispatch::ShowExceptions 
use ActionDispatch::RemoteIp 
use Rack::Sendfile 
use ActionDispatch::Callbacks 
use ActiveRecord::ConnectionAdapters::ConnectionManagement 
use ActiveRecord::QueryCache 
use ActionDispatch::Cookies 
use ActionDispatch::Session::CookieStore 
use ActionDispatch::Flash 
use ActionDispatch::ParamsParser 
use Rack::MethodOverride 
use ActionDispatch::Head 
use ActionDispatch::BestStandardsSupport 
run Bla::Application.routes 

c'è ActionDispatch :: BestStandardsSupport che source è l'impostazione l'intestazione X-UA-Compatible non con IE = 8.000. Esegui 3.0.0?

+0

Io ("Rails 3.0.0") ... se cambio quel file per mettere EmulateIE7 per il tipo =: caso incorporato, allora il mio codice funziona bene. Non so da dove arriverà l'8.0000, ma la modifica di quel codice risolve questo caso (non che lascerò quel cambiamento, solo dicendo ...) C'è un modo per cambiare questo a livello di app/pagina? – Ruprict

+3

è possibile impostare config.action_dispatch.best_standards_support su false per disabilitare il middleware e impostare manualmente l'intestazione X-UA-Compatible nel controller se si desidera una sintonizzazione a grana fine, o scrivere il proprio middleware e inserirlo nella parte inferiore del rack stack per impostarlo a livello di applicazione – hellvinz

+0

Grazie, hellvinz! – Ruprict