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