Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC - nie widzi pliku CSS z layoutu ?
Piotrbaz
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 2
Dołączył: 15.09.2012

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


Witam

W małej aplikacji opartej o MVC mam jedną klasę modelu, jedną kontrolera i jedną widoku.
Na podstawie $_GET zostaje wywołana odpowiednia metoda kontrolera, która wywołuje sobie model i ładuje odpowiedni widok. Oprócz widoków (w których z założenia ma być html + dane do wyświetlenia) jest też layout z plikiem .css itd.

Struktura zamieszanych w sprawę katalogów:

/layouts
---/default
---index.php
-------/css
-------style.css

/views
-widok1.php

etc.


Akcja: odpalam aplikację, zostaje wywołana domyślna metoda kontrolera, domyślna akcja modelu i domyślny widok. Bootstrap -> kontroler -> widok
Problem: wyświetla layout, wyświetla widok z danymi, ale nie respektuje pliku style.css z layoutu, mimo, że podana jest ścieżka bezpośrednia. Strona wyświetla się, jakby .css w ogóle nie było.
No siedzę nad tym cały dzień i nie ogarniam co_jest.gif


domyślna metoda z kontrolera:
  1. $this -> view -> set_View("widok1");
  2. $this -> view -> set_Data($data);
  3. $this -> view -> load_View();


klasa widoku:
  1. class View {
  2.  
  3. public $current_view = null;
  4. public $data = null;
  5.  
  6. public function set_View($view){
  7.  
  8. $this -> current_view = $view;
  9.  
  10. }
  11.  
  12. public function set_Data($data){
  13.  
  14. $this -> data = $data;
  15.  
  16. }
  17.  
  18. public function load_View(){
  19.  
  20. include('layouts/default/index.php');
  21.  
  22. }
  23.  
  24. }


layouts/default/index.php
  1. <html>
  2. <head>
  3. <title></title>
  4.  
  5. <link rel="stylesheet" type="text/css" href="layouts/default/css/style.css">
  6.  
  7. </head>
  8.  
  9. <body>
  10.  
  11. <h1>Layout</h1>
  12.  
  13. <?php
  14.  
  15. include("views/{$this -> current_view}.php");
  16.  
  17. var_dump($this -> data);
  18.  
  19.  
  20. ?>
  21.  
  22. </body>
  23.  
  24. </html>


Z braku pomysłu, wszędzie powpisywałem scieżki bezpośrednie i problem jest jak był.
Jeżeli potrzeba więcej danych, piszcie.

Ten post edytował Piotrbaz 26.01.2013, 21:33:11


--------------------
$piotrbaz->get_Signature();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


  1. layouts/default/css/style.css
powinno być raczej
  1. /layouts/default/css/style.css


odpal np w chorme "zbadaj element" i sprawdz gdzie przekierowuje css

Ten post edytował memory 26.01.2013, 21:34:30
Go to the top of the page
+Quote Post
aras785
post
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Ścieżka: http://site.pl/.../style.css
Sprawdź base smile.gif
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


index.php
  1. define('ROOT_PATH', realpath(dirname(__FILE__)));


  1. <link src="<?=ROOT_PATH?>/layouts/css/style.css">


ps. do dodawania ścieżek stworzył bym odpowiednie metody w widoku np. addStylePath('sciezka'), setStylePath(), setBasePath() itd.
Go to the top of the page
+Quote Post
Piotrbaz
post
Post #5





Grupa: Zarejestrowani
Postów: 55
Pomógł: 2
Dołączył: 15.09.2012

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


realpath(dirname()) zwraca mi ścieżkę w postaci:

  1. <link src="C:\wamp\www\nazwa_projektu/layouts/default/css/style.css">

no i na localhoscie nie smignie



p.s. zbadałem ten element w chrome i ścieżka jaką mi pokazuje to
  1. http://localhost/nazwa_projektu/layouts/default/css/style.css

więc niby dobrze, ale dalej źle, bo stronę wyświetla bez css

Ten post edytował Piotrbaz 26.01.2013, 22:03:00


--------------------
$piotrbaz->get_Signature();
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Mój błąd ;P zapomniałem, że pliki css to nie php...

<link href="/layouts/default/css/style.css" rel="stylesheet" type="text/css" />
lub
<link href="css/style.css" rel="stylesheet" type="text/css" />
lub
<link href="/css/style.css" rel="stylesheet" type="text/css" />

Ten post edytował CuteOne 26.01.2013, 22:50:08
Go to the top of the page
+Quote Post
Piotrbaz
post
Post #7





Grupa: Zarejestrowani
Postów: 55
Pomógł: 2
Dołączył: 15.09.2012

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


Tak, próbowałem każdej kombinacji ścieżek i nic. Tu jest jakiś inny problem ;/

Ścieżka jest prawidłowa (po kliknięciu otwiera się style.css), a narzędzie Chrome pokazuje mi ostrzeżenie przy style.css: Failed to load resource.


*advertisement to główny folder projektu


No nic, będę próbował do skutku, może założę nowy projekt. worriedsmiley.gif


--------------------
$piotrbaz->get_Signature();
Go to the top of the page
+Quote Post
aras785
post
Post #8





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Otwierasz sobie w przeglądarce ten styl, czyli: localhost/twoja_strona/layout/css/style.css. Jeśli strona się otworzyła i widzisz zawartość style css to robisz gdzieś w błąd w scieżce, a jeśli nic Ci nie pokaże (obstawiam ten scenariusz) to znaczy, że nie masz dostępu do tego folderu smile.gif .htaccess

Pozdrawiam
Go to the top of the page
+Quote Post
Piotrbaz
post
Post #9





Grupa: Zarejestrowani
Postów: 55
Pomógł: 2
Dołączył: 15.09.2012

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


Styl jak najbardziej się otwiera, a cały myk polega na tym, że i ścieżka wydaje się być dobra sleep.gif

Otwieram index.php swojej aplikacji, PPM -> pokaż źródło strony i co widzę:

  1. <head>
  2.  
  3. <link href="layouts/default/css/style.css" rel="stylesheet" type="text/css" />
  4. </head>
  5.  
  6. (...)


po kliknięciu na wartość atrybutu href otwiera się styl! i widzę kod z pliku.


Czarna magia oO
Najgorzej, że to jak zwykle jest jakiś banał, o którym człowiek nawet nie pomyśli...



================================================================================
========


Ok, problem rozwiązany. Nie wiadomo co to było, może coś netbeans zamieszał ze ścieżkami.

Założyłem nowy projekt, skopiowałem kod do nowych plików, zapisałem i bum, działa. php.gif
Nie wierzę, że straciłem tyle czasu na coś takiego.

Dzięki wszystkim za próbę pomocy.

Ten post edytował Piotrbaz 27.01.2013, 11:08:41


--------------------
$piotrbaz->get_Signature();
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: 22.08.2025 - 02:02