Autor | Zpráva | ||
---|---|---|---|
mol Profil * |
Ahoj, udělal jsem si jednoduchý router a když napíšu
localhost/clanek/5 tak je to ok, ale když napíšu localhost/clanek/5/nazev-clanku tak se ty styly nepoužijí uložil jsem stránku "uložit jako" a zjistil jsem že ty stly nemají příponu css, ale htm a jsou prázdné? jak je to možné? // index.php switch ($URL_cesta[0]) { case 'clanek': include 'clanek.php'; break; case 'domu': include 'domu.php'; break; ... v kořenové složce mám složky: style partials ve "style" mám css styly a v partials mám 'header.php' kde linkuju styly <link rel="stylesheet" href="../style/styly.css"> ten název nebo parametry za otazníkem by na to teoreticky snad neměli mít vliv... nebo jo? jak to mám tedy linkovat? localhost / <typ> / <id> / <nazev> ? <dalsi> ten obrázek se tam nezobrazil tak sem dám odkaz na něj ibb.co/dW1EQe hm, musel bych tam přidat ještě jednou ../ <link rel="stylesheet" href="../../style/style.css"> nejde to nějak zautomatizovat funkcí php? |
||
Keeehi Profil |
mol:
„já mám za to že se to linkuje vzhledem od toho headeru“ Linkování má na starosti prohlížeč. A ten neví, že nějaký soubor header.php existuje. On ani neví, že na serveru je PHP. A i kdyby to věděl, bylo by mu to jedno. Prohlížeč zajímá jen výsledný HTML kód a je mu jedno co ho vygrnerovalo. Jediné co zná je aktuální adresa, takže se linkuje oproti ní. "Problém" hezkých adres je ten že pro oddělení částí adresy se využívá znaku lomítka což je stejný oddělovač jaký je pro adresářovou strukturu. Takže když v URL se objeví další část, vypadá to jako podadresář. Proto v tvém případě bylo potřeba doplnit další ../ .
Bylo by samozřejmě hloupé muset generovat správný počet ../ v závislosti na které stránce zrovna jsi. Proto se v praxi používají adresy od kořene webu.
<link rel="stylesheet" href="/style/style.css"> * a protokol. Případně port a další komponenty URL pokud jsou přítomny a jsou před částí s cestou. |
||
mol Profil * |
#3 · Zasláno: 4. 8. 2018, 18:41:27
Keeehi:
parádní, díky |
||
mol Profil * |
#4 · Zasláno: 5. 8. 2018, 11:07:09
Ještě jedna věc. Když mám logo tak sem četl že bych měl použít relativní odkaz tj. "/". Ale ve všem ostatním se používá celý odkaz? Nebo je to jedno?
|
||
T-fon Profil |
#5 · Zasláno: 5. 8. 2018, 13:57:17
Pokud máš logo nebo jakejkoliv jinej obrázek uloženej u sebe na webu, vždycky používej relativní cestu.
|
||
mol Profil * |
#6 · Zasláno: 5. 8. 2018, 17:10:54
T-fon:
„nebo jakejkoliv jinej obrázek“ a co když je to jen h1 odkaz s názvem stránky jako neobrázkové logo? |
||
T-fon Profil |
#7 · Zasláno: 5. 8. 2018, 17:36:01
Ono je jedno, jestli se jedná o obrázek, odkaz, CSS, JS,... Cokoliv co je na tvém webu, na to odkazuj relativně. Absolutní cesty se používaj, pokud odkazuješ jinam, např. na externí fonty, JS, na článek na jiném webu atd.
|
||
Keeehi Profil |
#8 · Zasláno: 5. 8. 2018, 19:54:21
mol:
On v tom zase až tak velký rozdíl není. Relativní adresy se používají hlavně proto, že nejsou závislé na doméně. Tudíž se web mnohem lehčeji dá přesunout na jinou. Nezávislost na doméně také umožňuje snadný vývoj na localhostu. |
||
mol Profil * |
ok
ale co když mám https a někdo by ke mě přicházel přess http, potom by byl relativní odkaz http:// nebo https:// ? |
||
RastyAmateur Profil |
#10 · Zasláno: 5. 8. 2018, 20:45:57
mol:
Dle mého názoru pokud máš https, tak by jsi si měl i zajistit to, aby se ti http přesměrovávalo na to https |
||
T-fon Profil |
#11 · Zasláno: 6. 8. 2018, 08:24:12
mol:
„potom by byl relativní odkaz ht>tp:// nebo ht>tps:// ?“ Pokud do odkazu přidáváš http, tak to právě není relativní odkaz, ale absolutní. |
||
Keeehi Profil |
mol:
Ano, rozhodně by jsi přesměrovat měl. Pokud by jsi to ale neudělal tak výsledná URL relativní nadresy bude mít stejný protokol jako je v URL aktuální stránky. Tedy http. Což jsem psal už ve [#2]. |
||
mol Profil * |
#13 · Zasláno: 6. 8. 2018, 10:15:38
Ok, a je lepší to přesměrovávat přes PHP nebo htaccess? Když bych to dělal přes PHP mám kromě location hlavičky posílat i 301?
|
||
Keeehi Profil |
#14 · Zasláno: 6. 8. 2018, 11:00:27
mol:
Obojí je možné. Každé má své výhody a nevýhody. Přesměrování v htaccess bude o pár ms rychlejší a výkonově nejspíše méně náročné, jelikož se ten požadavek k PHP vůbec nedostane. Pokud to bude v PHP, tak veškeré zpracování adres a přesměrování budeš mít na jednom místě a ne mezi dvěma systémy. Status 301 (pro účely testování nejdříve 302) by jsi měl posílat vždy. |
||
Časová prodleva: 6 let
|
0