Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mod_rewrite, <base> i niedziałające odnośniki do obrazków, w zewnętrznych plikach css
starach
post 20.01.2008, 17:20:33
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Cześć.
Chciałbym ujednolicić trochę kod stron poprzez wydzielenie wszystkich styli do zewnętrznych plików CSS.
Problem leży w stosowaniu mod_rewrite. Gdyż jeśli mam obrazek znajdujący się pod adresem www.domena.com/obrazki/logo.jpg a obecny url to www.domena.com/strona/parametr/ i kiedy wpiszę w parametrze background:url('obrazki/logo.jpg') to się on nie wyświetli.
Rozwiązaniem jest zastosowanie tagu <base> niestety działa ono tylko dla stylów które są umieszczone wewnątrz kodu HTML,
natomiast nie działają kiedy są przywoływane z zewnętrznego pliku CSS.

Ktoś wiec jak umieścić cały arkusz stylów w osobny pliku dołączanym tagiem <link> i który rozwiązuje powyższy kłopot ?
Go to the top of the page
+Quote Post
wewior
post 21.01.2008, 14:44:47
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 8
Dołączył: 24.09.2003

Ostrzeżenie: (10%)
X----


base to nie jest wg mnie zbyt dobre rozwiazanie, w takiej sytuacji powinienes sie wg mnie odwolywac do obrazkow przez sciezke bezwzgledna, tzn wczytujesz /img/obrazek.jpg i to powinno rozwiazac problem, mozna jeszcze kombinowac przez ustalenie wyjatkow dla obrazkow w .htaccess ale to juz wiecej zabawy i musialbys poszukac jakiegos gotowego kodu z wyjatkami dla wymaganych rozszerzen


--------------------
- - -
PHP, HTML, JS, Quick.Cms v6.4, Quick.Cart v6.7, Simlery
- - -
Go to the top of the page
+Quote Post
zbig
post 21.01.2008, 19:03:08
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


Witam !
Fragment mojego .htaccess

Kod
RewriteEngine on
RewriteCond $1 !^(index\.php|image|Css)
RewriteRule ^(.*)$ /index.php/$1 [L]


W RewriteCond definiujesz katalogi do ktorych linki nie beda rewritowane

Po takim RewriteCond masz dostep do katalogow image i Css z zewnetrznego linku

Pozdrawiam


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post
starach
post 23.01.2008, 15:09:43
Post #4





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Nikt mnie nie rozumie :chlip: biggrin.gif
Nie zrozumieliśmy się. W kodzie mojej strony umieściłem coś takiego:
  1. <base href="{CST-DIR_HREF_TMPLS}default/" />
  2. <link href="css/main.css" rel="stylesheet" type="text/css">
  3. <style type="text/css">
  4. body { background:url('images/background.gif'); }
  5. .header { background:url('images/background_header.gif'); }
  6. .logo { background:url('images/logo2.gif'); }
  7. .logo_text { background:url('images/logo_text6.gif'); }
  8. .flags .f_en { background:url('images/flag_en.gif'); }
  9. .flags .f_pl { background:url('images/flag_pl.gif'); }
I obrazki działają, ale nie chce walić tutaj znacznika style tylko po to żeby mi obrazki działały.
Jeśli umieszczę bezwzględną ścieżkę do obrazków będę musiał się strasznie chrzanić ze zmianą ich w przypadku zmiany domeny.
Natomiast użycie zmiennej szablonowej do wszystkich obrazków też na nic mi się nie zda bo wydajność spadnie,
a znacznika style i tak się nie pozbędę z kodu HTML :/ Jedynym w miarę sensownym wyjściem wydaje mi się jest utworzenie skryptu php który będzie generował styl, ale to też jest mi nie w smak. Ehh dobra niech już zostanie ten znacznik style kicham na niego.
Dlaczego swoją drogą uważasz że używanie base nie jest dobrym rozwiązaniem ?
Go to the top of the page
+Quote Post
wewior
post 5.02.2008, 13:27:46
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 8
Dołączył: 24.09.2003

Ostrzeżenie: (10%)
X----


nie musisz dodawac domeny zeby miec bezwzgledna sciezke, teraz masz cos takiego:
images/obrazek.jpg
problem w tym ze jesli korzystasz z rewritow w postaci katalogow lub w inny sposob odwolujesz sie skryptami z poza katalogu w ktorym jest katalog images/ to obrazek sie nie wczyta, ale jesli bedziesz sie odwolywal w taki sposob:
/images/obrazek.jpg
wtedy bedziesz mial dostep do obrazka z kazdego poziomu, oczywiscie warunek zeby strona byla w glownym katalogu a obrazki najlepiej w katalogu o krotkiej nazwie nawet moze i/ inaczej bedziesz musial faktycznie robic odwolania po katalogach a to juz powinno sie ladowac z jakiejs konfiguracji zeby tego nie bylo w 100 miejscach


--------------------
- - -
PHP, HTML, JS, Quick.Cms v6.4, Quick.Cart v6.7, Simlery
- - -
Go to the top of the page
+Quote Post
WebCM
post 8.03.2008, 11:26:53
Post #6





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Cytat
warunek zeby strona byla w glownym katalogu
Tu jest problem. Na niektórych hostingach adres twojej strony to: nazwa_hostingu.com/twoja_nazwa. URL w <base> musi być pełny - wtedy problem z CSS nie występuje - przynajmniej na localhost.

@wewior: Dlaczego <base> to złe rozwiązanie?


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 09:37