Počkejte, až uvidíte tuto aquascape! DIY PVC útesové stěny a upgrade dřezu. | Ep4: Desetiletý tank

Mám následující pravidlo mod_rewrite:

RewriteRule ^/yui-3.3/yui_config.js$ /web/yui/yui_config.js [R] 

při pohledu na síťový provoz pomocí Firebug a Chrome jsem si toho všiml /yui-3.3/yui_config.js hlásí svůj typ jako text/html což zjevně nevypadá dobře. Pokusil jsem se změnit pravidlo na:

RewriteRule ^/yui-3.3/yui_config.js$ /web/yui/yui_config.js [T=application/javascript,R] 

ale typ je stále text/html.

Jak mohu zajistit, aby byl můj soubor poskytován jako application/javascript?

  • možný duplikát všeho, co jste kdy chtěli vědět o pravidlech Mod_Rewrite, ale báli jste se zeptat?
  • @Walter - Tento příspěvek byl označen pro přidružení k vašemu účtu Pro Webmasters, ale zdá se, jako by váš účet Serverfault používal jiné OpenID nebo nebyl přidružen k vašim účtům StackOverflow a Pro Webmasters. Přidružit všechny účty v Meta StackOverflow k opravě tohoto problému: blog.stackoverflow.com/2009/07/cross-site-account-associations

Vaše pravidlo nebude fungovat, protože T režim se nastavuje na žádost, kterou toto pravidlo spustí .. ale pak posíláte přesměrování. Žádost, kde T=application/javascript je nastaveno končí stavovým kódem 302; zcela nový požadavek na nové umístění přichází samostatně a neví o něm RewriteRule.

Pokud je soubor .js .. soubor js (a není dynamicky generován nebo tak něco), pak by jeho typ mime měl být nastaven pomocí AddType application/javascript .js směrnice zakopaná v nějakém výchozím konfiguračním souboru Apache, což je „správný“ způsob, jak to udělat.

Pokud tam je a stále nefunguje, rozbijte velké zbraně a přepište záhlaví odpovědi, když obsah vyjde ze dveří a trumfne cokoli jiného, ​​co to rozbíjí:

RewriteEngine on RewriteRule ^.*\.js$ - [env=headerjs:1] Header set Content-type application/javascript env=headerjs 

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?