Ho visto molte domande riguardanti il collegamento alle risorse del tema in CakePHP e nessuno di loro sta risolvendo il mio problema e anche il post più recente è stato nel 2012, quindi ho pensato di fluttuare la mia domanda là fuori.Tema Asset non funziona in CakePHP 2.2.4
Ho implementato temi nell'applicazione CakePHP 2.2.4. Il mio tema chiamato "default" (precedentemente chiamato "Default" fino a 1 minuto fa) si trova in app/View/Themed/default
(in precedenza il nome del tema aveva anche la corrispondente D maiuscola per il nome della cartella).
Il mio file css si trova a app/View/Themed/default/webroot/css/style.css
che io chiamo in app/View/Themed/default/Layouts/default.ctp
con il seguente codice di layout
Default.ctp
echo $this->Html->css('style');
(Ho provato con capitale W per Webroot "just in case "ma nessuna sorpresa che non ha funzionato)
Ho incluso questo collegamento nel mio AppController per stabilire quale tema sto usando. Tutti i file di visualizzazione puntano al tema corretto, ma il problema adesso è con il foglio di stile (devo ancora confondere altre risorse come js o file di immagine).
AppController
class AppController extends Controller {
public $theme = 'default'; // previously 'Default'
// also, have used both 'public $theme' and 'var $theme', no difference
Ho letto le seguenti domande e nessuna delle "soluzioni" ho lavorato. La maggior parte delle soluzioni consisteva nel controllare l'ortografia/la maiuscola, controllare le autorizzazioni sulle cartelle, controllare il mio file .htaccess, ecc. Ancora niente. E nuove idee?
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
L'autorizzazione della cartella per le cartelle a tema Webroot e CSS sono 755.
Ecco alcune risorse che ho usato senza fortuna.
http://book.cakephp.org/2.0/en/views/themes.html
CakePHP theme resources return error
Unable to get css and image files in Themes webroot folder of cakephp
https://groups.google.com/forum/#!topic/cake-php/xaRAugMoNSc
https://groups.google.com/forum/#!topic/cake-php/siYVWchUb1g
UPDATE: utilizzando $this->Html->image('image.jpg')
visualizza correttamente l'immagine definita situata a View/Themed/Default/webroot/img/image.jpg
. Tuttavia, l'utilizzo di $this->Html->css('style')
tenta di estrarre il foglio di stile da app/webroot/css/style.css
e non da app/View/Themed/Default/webroot/css/style.css
. Ho anche dovuto cambiare il nome del tema e il nome della cartella del mio tema in "Default" con una D maiuscola per far sì che l'immagine si collegasse correttamente. Il foglio di stile non si collega ancora correttamente. Se navigo direttamente nel mio foglio di stile del tema nel mio browser, viene visualizzata una pagina vuota. Se navigo in un foglio di stile che non esiste nella mia cartella dei temi, ricevo il messaggio di errore corretto. Tuttavia, visualizzando la fonte del mio foglio di stile del tema (quello che esiste), mostra una pagina vuota.
non v'è alcuna differenza se io uso "default" o "Predefinito" come nome del tema. ** AGGIORNAMENTO: ** utilizzando '$ this-> Html-> image ('image.jpg')' visualizza correttamente l'immagine definita situata in 'Visualizza/Temi/Default/webroot/img/image.jpg'. Tuttavia, usando '$ this-> Html-> css ('style')' prova a estrarre il foglio di stile da 'app/webroot/css/style.css' e non da' app/View/Themed/Default/webroot/css/style.css' – bowlerae
Ecco fatto! CakePHP si aspetta che la cartella venga nominata con CamelCase, indipendentemente dal nome del tema specificato con le lettere inferiori nel controller. –
Esattamente quello che dice Serge, se hai la tua directory tematica in minuscolo, limitala e funziona correttamente. – xorinzor