Diskuze: .htaccess a zpracování žádosti o CSS soubor v PHP
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 32 zpráv z 32.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
A čo tak mať php súbor, ktorý podla parametrov načíta potrebné CSSká zlepí ich dokopy, minimalizuje ich a prehliadač dostane iba jeden súbor? Optimalizuješ si tým počet requestov pri načítaní stránky.
Já potřebuju hlavně vědět, jak ten soubor pak poslat prohlížeči. A samozřejmě jak ten php kód na zpracování spustit.
Nejde mít ten soubor v PHP, ve kterém nastavíš hlavičkou, že se jedná o CSS?
To by mohlo fungovat, vyzkouším to. A nevíš, jak přesměrovat na ten php soubor?
Můžeš napsat do HTML stránky:
<link rel="stylesheet" href="styl.php" type="text/css">
V souboru styl.php budeš mít skript, který bude generovat css kód. Tento soubor budeš odesílat s hlavičkou text/css.
To by šlo, ale já nechci mít href="styl.php", ale prostě href="styl.css". Soubor je potřeba jen upravit.
A jak se hlavičce nastavuje text/css?
niečo ako
header("Content-type: text/css");
vraj ale u IE nefunguje, preto treba použiť nejaký X-Content-Type-Options: nosniff header, pravdepodobne takto nejako:
header("Content-Type: text/css"); header("X-Content-Type-Options: nosniff");
A není to jedno, jestli to bude mít koncovku php, nebo css?
V PHP se to dělá:
header("Content-Type: text/css");
Není. Možná to budu potřebovat i na jiné přípony a rozhodně nechci mít všude jen .php . Přes .htaccess to určitě jde, jen se v něm málokdo vyzná...
možno nechce aby iní vedeli, že mu to generuje php
Taky jeden z mnoha důvodů. Mít všechny odkazy na stránce s .php je trochu zvláštní.
Ešte ma napadla šialená myšlienka
V tutoriáloch o PHP sme si nastavovali .html šablonu ako .phtml, a v .htaccess sme nastavili aby sa táto prípona .phtml správala ako klasické .php (a taktiež aby sa nezobrazoval kod php ak by niekto zobrazil tú šablonu)
AddType application/x-httpd-php .php .phtml
čo keby si si takto nastavil .css súbory aby sa správali podobne? pokiaľ tam bude len css kód tak sa to bude stále správať ako css kod, ale môžeš tam pridať php kód ktorý by sa mal vykonávať + samozrejme bolo by vhod odoslať tú hlavičku
AddType application/x-httpd-php .php .css
Není lepší si daný jiz sestaveny CSS soubor zacachovat a pri sestavení stránky tam jen linknout soubor, nazev muze byt ulozen treba v DB u dané stránky? Timto zpusobem, se bude muset sestavovat CSS soubor pri kazdem zobrazeni.
PHP bude jen v jednom souboru (+ možná nějaké třídy v dalším, ale to není podstatné). Dostane CSS, upraví ho a odešle.
Myslel jsem něco takového:
http://www.itnetwork.cz/…er-kontroler
Je tam pravidlo pro přesměrování věcí na index.php, já bych potřeboval přesměrovat CSS na (něco).php . Název php souboru ještě nemám.
Tak s tím ti bohužel neporadím. S htaccess také bojuji (a neúspěšně,
vždycky se musím někoho zeptat)
Ano, ale bude se sestavovat v závislosti na různých věcech (optimalizace a prefixy pro prohlížeče apod.)
napadlo ma niečo takéto ešte, len neviem či je tá podmienka správna, do toho sa nerozumiem, takže len nápad
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\.(css)$ css-generator.php [L]
RewriteRule !\.(js|ico|gif|jpg|png)$ index.php [L]
a ten súbor by teda vygeneroval čo má vypísať, poslal by tú hlavičku a potom vyechoval toto čo vygeneroval
mkub by možno vedel
prefixy pre prehliadače? no to len nájdi u css referencií či daná vlastnosť má aj prefixové (testovacie) verzie, a tie len pridaj do css-ka a nič daľšie nerieš, len nech je ako posledná v poradí tá ktorá má byť finálna (napr. -moz-border-radius, ..... a ako poslednú border-radius)
aby staršie verzie IE rozumeli html kodu, pridaj js https://code.google.com/p/html5shiv/ a ten IE naučí (js modernizr ho obsahuje v sebe)
To je jen jedna z mnoha věcí, dal jsem jí jen jako příklad. Je to jedna z nejméně důležitých, ty hlavní moc nechci prozrazovat.
ono to funguje? lebo ja netuším ani čo tie [L] znamenajú
každopádne dnes sa idem naučiť niečo o apache
Já tomu taky nerozumím
Ale vypadá to pěkně
takže asi bez toho znaku ^
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule \.(css)$ css-generator.php [L]
RewriteRule !\.(js|ico|gif|jpg|png)$ index.php [L]
veľmi dobrý zdroj ohľadom Apachu a mod_rewrite je tu: http://www.sindelka.cz/…mod-rewrite/
Kupříkladu kód v podobě
RewriteEngine On
RewriteRule \.gif$ b.html
říká, že budeme používat mod_rewrite (první řádek) a že všechny požadavky na soubory gif (požadavky končící na ".gif") na našem serveru, budou přesměrovány na soubor b.html.
Tohle je na tej stránce napsaný - mělo by to bejt přesně to co
potřebuju a je to tak primitivní
style.php používa veľa veľkých a známych aplikácii. Napadá ma napríklad phpBB fórum vo verzii 3. To či ti ťahá CSSko z *.php *.css je úplne fuk(ak v phpčku nastavíš správne hlavičky). Čiže mať "odkazy" na CSSka s .php nieje vôbec zvláštne, len nikde sa nehovorí o tom že sa to dá a aké to ma výhody.
Napríklad niektoré IDE ti htaccess súbory neparsujú, takže môže zle odkazovať na súbory poprípade odkazovať na neexistujúce, to ti niekedy môže liest poriadne na nervy. Ver mi že tým rewritom na takúto zbytočnosť si len strpčíš život, zvlášť keď budeš vyvíjať niečo väčšie a rozhodneš sa použiť tento blud iba kvôli tomu že je to "krajšie" a že ťa nik na tú nezmyselnosť neupozornil.
PS: robíš web pre užívateľov, im je úplne fuk či je .php, .css,
.troll, ... Ide o to aby si sa v tom vyznal ty a aby tvoje IDE nemalo problém
tomu porozumieť. A samozrejme aby si nerobil zbytočné veci
já myslím, že spoustě dobrých IDE uděláš bordel v tom když do link rel=stylesheet dáš PHP soubor. Pokud má v účelu soubor minimalizovat přijde mi na místě použít htdocs a přesměrovat (podvrhnout, prohlížeč se to nemusí dozvědět) styly na PHP soubor, který jej zpracuje.
Mne hlavne šlo o to aby vedel, že .php nieje zlo a používajú ho aj veĺké aplikácie. Dokonca keď ešte facebook nebol tak rozsiahly a nemal takú návštevnosť používal to isté.
Každopádne je to hlavne na ňom s čím sa mu dobre robí, môj názor
neber za svätú pravdu. Je to len môj názor, ktorý som si po pár rokoch
vývoja vypracoval .
Jenže takhle bych musel mít php kód u každého css souboru. Já chci mít kód na jednom místě a jen mu zadávat soubory.
jo je to názor, php je prostě script, ne styl, pokud je možnost nekombinoval bych to. velké projekty jako třeba tebou zmíněné phpBB (facebook zrovna ani tak ne) to mají protože jsou nasazované na různé servery a na spoustě serverů je htaccess zakázaný, proto to dělají mírně "prasáčtějští" metodou.
<link href="styl.min.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="mujskript.min.js"></script>
RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.+?)\.min\.(css|js)$ minifikator.php?soubor=$1&type=$2 [QSA,L]
By mohlo fungovat snad
Zobrazeno 32 zpráv z 32.