Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite] Nie wczytuje CSS i Grafiki
stirith
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


Witam


oto "kawałek" z pliku .htaccess

Kod
RewriteRule ^md/([^-]*)/([^-]*).html$ site/md.php?cs=1&id_mod_mod=4


Powoduje to powstanie że mogę się odwołać do strony poprzez adres : http://adres_strony.pl/md/1/4.html

I działa...tylko że się nie wczytuje grafika i CSS...

mam też coś takiego :

Kod
RewriteRule ^mod/([^-]*).html$ site/mod.php?cs=1


i tutaj mamy adres http://adres_strony.pl/mod/1.html

i tutaj wszystko się wczytuje...

Czyli wychodzi na to że w tym pierwszym przypadku po dodaniu jednego katalogu (zagłębienie drzewa katalolgu) adres do zewnętrzego css i grafiki nie pasuje...

Jak to naprawić ?
Linki bezpośrednie mijają się z celem...napewno musi być coś innego..
pozdrawiam
Go to the top of the page
+Quote Post
Maciekbjw
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

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


Da się to zrobić tak jak napisałeś, linkami bezpośrednimi biggrin.gif Ale rzeczywiście to jest beznadziejne rozwiązanie.
Kiedyś też miałem taki problem i zrobiłem to tak:

Wszelkie ścieżki do obrazków i styli:
Kod
<img src="../obrazki/porn.jpg" /> // obrazek

<link rel="stylesheet"  type="text/css" media="screen" href="../style.css" />  //style


U mnie to działało.
Jeszcze wyjaśnienie: '../' oznacza w unixach odwołanie do głownego katalogu.


--------------------
Masz swoje mieszkanie i chcesz je wynająć? Sprawdź ofertę Zarzadządzanie Najmem

WRONA.IT - pozycjonowanie stron
www.ecyklopedia.pl
Go to the top of the page
+Quote Post
trucksweb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

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


troche dziwnie to zrobiles- odwolanie do styli najlepsze rozwiazanie- zawsze dziala podajesz pelna sciezke do pliku z css'em

a w pliku z css'em w ktorym ustawiasz np. tlo dajesz:
  1. <?php
  2. backgroud: url(../katalog/obrazek.jpg);
  3. ?>


i powinno pomoc


--------------------
Rozmawia dwóch dyrektorów:
- Jaki jest twój ideał sekretarki?
- 20-letnia dziewczyna z 30-letnim doświadczeniem.
Go to the top of the page
+Quote Post
stirith
post
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


z tego co Ja wiem...to "../" oznacza odwołanie się do "wyższego"/"nadrzędnego" katalogu...

więc jak mam plik który mod_rewrite mi da (patrząc od index) site/mod/1/2.html

a css mam (patrzac od index) css/style.css

więc plik 2.html...musi mieć adres: "../../../css/style.css" -> chyba nic nie pomieszałem tongue.gif

a wcześniej miałem o jednen "../" mniej...i dlatego teraz nie działa...

napewno coś jest...tylko co

Chyba sie nie rozumiemy...

"Stary" adres : site/md.php?cs=1&id_mod_mod=4
miał adres do pliku css : ../../style.css

nowy adres: md/4/1.html -> czyli mod_rewrite tworzy dodatkowo jeden katalog...co zmienia postać rzeczy dla wczytywanej grafiki :

czyli adres do css musi być: ../../../style.css

Jak to zrobić żebym w plikach nic nie musiał zmieniać ? tak automatycznie ?


Cytat(trucksweb @ 19.04.2008, 00:27:43 ) *
troche dziwnie to zrobiles- odwolanie do styli najlepsze rozwiazanie- zawsze dziala podajesz pelna sciezke do pliku z css'em

a w pliku z css'em w ktorym ustawiasz np. tlo dajesz:
  1. <?php
  2. backgroud: url(../katalog/obrazek.jpg);
  3. ?>


i powinno pomoc


dobrze...to z CSS...a co z grafiką ?

ja tam nie mam tylko "tła"

są obrazki...
Go to the top of the page
+Quote Post
oomaster
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


W takich sytuacjach musisz cały kod poprawić tam gdzie masz odwołania do plików zrobione w taki sposób:

Cytat
/katalog/obrazek.jpg


Musisz zamienić na:

Cytat


Czyli podać pełną ścieżkę do pliku. smile.gif
Go to the top of the page
+Quote Post
bełdzio
post
Post #6





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


w head wstaw:

Kod
<base href="http://TwojaStrona.pl/" />


--------------------
Go to the top of the page
+Quote Post
stirith
post
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


Tak jak mówiłem odwoływanie się "bezpośrednio" do pliku mija się z celem...

A jak to się robi w FORACH ? czy jakichś dużych CMS ? Przecież tam też się to "wszystko zmienia"...jak tam jest ustawione ?


A ta funkcja "base" to bezpieczne narzędzie ? tongue.gif
Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja zawsze stosuję ścieżki bezwzględne, ale nie ścieżki pełne. Przykładowo, aby wyświetlić obrazek odwołuję się do niego poprzez:
Kod
/img/obrazek.gif

Analogicznie wczytując plik ze stylami:
Kod
/css/style.css

W samym pliku ze stylami również podaję ścieżki bezwzględne (np. do ustawiania graficznego tła).

Całość działa bez najmniejszego problemu bez względu na to, jak wygląda adres.
Go to the top of the page
+Quote Post
stirith
post
Post #9





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


Zaczynam już poprawiać Twoim sposobem...tylko że mam problem...bo jak mam

Kod
include("/plik.php")


i jest źle....bo ten plik.php faktycznie znajduje się (względem tego pliku)

Kod
../plik.php


jak w include dać ściezke bezwzględną (nie pelną) ?
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie, zauważ, że PHP działa po stronie serwera. On musi mieć ścieżki względem serwera czyli po prostu zostaw je w spokoju smile.gif Obrazki, style, js itd. działają po stronie przeglądarki i to je musisz odpowiednio wczytać. Czyli zmieniasz ścieżki tylko i wyłącznie dla tych elementów, które działają po stronie przeglądarki, a nie serwera.

* przeczytałem co napisałem i reasumując:
- pliki php wczytujesz w oparciu o faktyczne położenie plików na serwerze
- pliki css i obrazki wczytujesz względem DOCUMENT_ROOT

Ten post edytował phpion 19.04.2008, 10:14:26
Go to the top of the page
+Quote Post
stirith
post
Post #11





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


No dobrze...ale..

Jak pozniej uwtorze w mod_rewrite link:

4/1/plik.html

To include nie znajdzie pliku...bo w kodzie będzie "../header.php" -> a przy "nowym" pliku musi być "../../header.php"...

Tak to będzie ? czy jestem w błedzie ?



..........

Doczytałem co napisałeś...

Dzięki smile.gif Idę to sprawdzić smile.gif

Ten post edytował stirith 19.04.2008, 10:17:14
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(stirith @ 19.04.2008, 11:16:32 ) *
Tak to będzie ? czy jestem w błedzie ?

Nie tak będzie, jesteś w błędzie.
Go to the top of the page
+Quote Post
stirith
post
Post #13





Grupa: Zarejestrowani
Postów: 162
Pomógł: 2
Dołączył: 18.01.2008

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


Mam jeszcze jedno pytanie :


Jak zrobie przez mod_rewrite te linki np : 3/4/1.html...

To jak to mam wstawić do kodu strony ? -> bo to co napisalem wyzej sie tworzy "dynamicznie"....
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Normlanie:
  1. <a href="/3/4/1.html">Link</a>
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 Aktualny czas: 20.08.2025 - 04:37