Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS]Ścieżki do obrazków
Forum PHP.pl > Forum > Przedszkole
Evinek
Witam.
Tworzę stronę no i mam dwie wersje. Dokładnie mam te same pliki na localhost i na stronie prócz jedynie pliku core.php który ma konfiguracje.
Problem jest teraz ze stylami. Normalnie używam zmiennej globalnej(chyba to tak się nazywa) WWW.'reszta linku', ale w tym CSS tego nie użyje. Jest problem w tym, że na localhost stronę mam w podkatalogu a na serwerze w głównym folderze - ścieżka więc się zmienia.
Ścieżka która działa na stronie:
  1. background: url('/public/images/theme/gazeta.jpg') repeat-y right top;

A, że chce mieć dokładnie te same pliki tu i tu aby jak dokonam zmiany na localhost to wysyłam od razu na serwer i to działa to potrzebuje jakoś użyć zmiennej globalnej WWW w CSS.
Dodam, że nie chcę zmieniać konfiguracji PHP.
Myślałem aby dodać w HTMLu po prostu to (style="..."), ale czy to będzie poprawnie?
Proszę o rady.

Pozdrawiam, Paweł.
strife
Tu masz jedno z rozwiązań jak korzystasz ze zmiennych w plikach css.

* http://net.tutsplus.com/tutorials/html-css...your-css-files/

Zasadniczo musisz css generować dynamicznie jakoś, a potem cacheować.

Jeśli zrozumiałem o co Ci chodziło, trochę dziwnie to opisałeś w ogóle.
markonix
Ja bym się po prostu trzymał standardów.

http://stackoverflow.com/questions/3812375...ase-url-for-css

W dobie MVC, widoków mimo wszystko jest standard aby css trzymać w root folderze i problem z głowy.
Jest też base href ale nie jestem pewien czy działa z css (nigdy nie miałem potrzeby go używać).
Evinek
Ogólnie to tak:
CSS na serwerze:
  1. background: url('/public/images/theme/gazeta.jpg') repeat-y right top;

CSS na localhost powinien wyglądać tak:
  1. background: url('/nazwafolderu/public/images/theme/gazeta.jpg') repeat-y right top;

Chce aby każdy plik co jest na localhost bym identyczny jak na serwerze. Czyli jak będę chciał zmienić tylko kolor tekstu to bez zmiany tej linijki(z tym tłem) chciałbym aby wszystko działało jak wyślę na inny serwer.

Rozwiązanie powyżej jest okej, ale czy warto bawić się takim czymś dla jednej rzeczy?
Może ktoś da jeszcze inny pomysł. Co sądzicie o dodawaniu CSS w index.html? Albo dodawaniu linku w CSS(czyli zawsze by brało ze strony obrazek, nawet jak robię na localhost).

!*!
markonix już Ci odpowiedział, za bardzo kombinujesz. Masz pliki na serwerze

Cytat
index.html
web //katalog
- style.css


W index.html dajesz odwołanie do /web/style.css a w pliku style np.

  1. background: url('/imggazeta.jpg') repeat-y right top;

Ponieważ są w tym samym folderze co plik css.
Damonsson
Trzymaj się standardów, jak napisano wyżej i nie będzie problemów.

index.php trzymasz w katalogu w którym, CSS trzymasz w folderze CSS, obrazki trzymasz w IMAGES na tej samej wysokości i linkujesz sobie z css do obrazków '../images/itd.', a z index.php normalnie 'images/itd.'

Zobacz sobie jak to wygląda w jakichś CMSach nawet typu Joomla.

Evinek
Co za ze mnie...
Jak zawsze za dużo kombinuje.
Problem rozwiązany - proste błędy są najtrudniejsze.

Pomógł leci dla tych co pomogli albo próbowali chociaż. smile.gif

Rozwiązanie (dla tych z tym samym problemem):
  1. background: url('../images/theme/gazeta.jpg') repeat-y right top;

Foldery mam tak ułożone:
public
-images
-css
-js
wNogachSpisz
Istnieje ciekawy wynalazek, mam na myśli znacznik <BASE>.
Bardzo przydatne, jednak bugowate w IE podczas dynamicznego nadawania atrybutu background-image. Ja się nauczyłem, ten atrybut dynamicznie tylko przy użyciu bezwzględnej ścieżki.
markonix
Cytat(wNogachSpisz @ 17.07.2012, 12:47:21 ) *
Istnieje ciekawy wynalazek, mam na myśli znacznik <BASE>.

Po co odgrzebujesz kotlety poza tym o base wspominałem jakbyś nie zauważył..
wNogachSpisz
Cytat(markonix @ 17.07.2012, 13:06:01 ) *
poza tym o base wspominałem jakbyś nie zauważył..

I co ciekawego o nim napisałeś?
!*!
Cytat
Istnieje ciekawy wynalazek, mam na myśli znacznik <BASE>.

W stronie do 5 podstron może i się sprawdzi. W czymś rozbudowanym już nie, bo kto powiedział że źródło może być tylko jedno. Znacznik <base> to spore uwstecznienie.
wNogachSpisz
Co masz na myśli pisząć że "źródło może być tylko jedno"?
!*!
To że base głównie dajesz raz na początku pliku html. I na tej podstawie linki, czy tam img, dokleja sobie ten adres do siebie. Tylko że ustalanie czegokolwiek z poziomu html, przy czymś większym to czysta głupota, od generowania ścieżek są funkcje, .htacces a nie gmeranie w plikach wyglądu.
wNogachSpisz
Jeśli masz rozproszoną logikę aplikacji pomiędzy php, bazę danych, konfigurację serwera www, mod rewrite, pliki html i cholera wie co jeszcze, to nic dziwnego że nic do siebie nie pasuje.

Nie rozumiem co chcesz ustalać z poziomu HTML. Główny URL jest najczęściej w stylu: 'http://domena.pl/', ustalasz go z kontrolera, przekazujesz do widoku, podstawiasz do "base href" i gotowe.
Od ok. dwóch lat używam BASE w każdym projekcie i poza bugiem przy dynamicznie ustalanym background-image w IE wszystko działa idealnie.

Nie rozumiem gdzie tu uwstecznienie?
!*!
Cytat
Jeśli masz rozproszoną logikę aplikacji pomiędzy php, bazę danych, konfigurację serwera www, mod rewrite, pliki html i cholera wie co jeszcze, to nic dziwnego że nic do siebie nie pasuje.

Nie pasuje?

Tylko po co Ci base, jak i tak przekazujesz dane do widoku?

Cytat
Od ok. dwóch lat używam BASE w każdym projekcie i poza bugiem przy dynamicznie ustalanym background-image w IE wszystko działa idealnie.

Nie tylko, pozostaje również problem z kotwicami, jak i swego czasu multibg w fx. Base to relikt (tak jak basefont, center czy align, aż dziwne że jeszcze nie wyleciał ze specyfikacji), dobry przy b. małych stronach. Z rozdziałem na mvc/mvp nie ma racji bytu.
wNogachSpisz
Relikt w specyfikacji HTML5? Nie łykam tego. Relikt to znacznik font czy center, nie base.

Po to żeby każdy href i scr w dokumencie nie zaczynał się od scheme i hosta, a od path.
!*!
Cytat(wNogachSpisz @ 17.07.2012, 14:36:23 ) *
Relikt w specyfikacji HTML5? Nie łykam tego. Relikt to znacznik font czy center, nie base.
Po to żeby każdy href i scr w dokumencie nie zaczynał się od scheme i hosta, a od path.


HTML5 jest kompatybilne wstecz.

Widok ustalający ścieżkę... można i tak, tylko skoro go masz... ale niech Ci będzie że to logiczne i dobre.
markonix
Cytat(wNogachSpisz @ 17.07.2012, 13:09:22 ) *
I co ciekawego o nim napisałeś?

Hmm, a Ty?? Że ma BUG i że z niego korzystasz - bardzo pomocne.
To chyba wystarczająco jednoznaczny atrybut, że nie trudno znaleźć o nim informacje, jeżeli zainteresuje autora.

No i nadal nie zmienia faktu, że temat to kotlet.

strife
Temat do niczego nie zmierza, jako że jest rozwiązany zamykam.

Przenieście proszę Panowie tę konwersację na PW.

Zamykam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.