2012-10-18 8 views
5

Attualmente sto iniziando lo sviluppo di siti drupal su Acquia. Usare git e lavorare localmente è un nuovo flusso di lavoro per me. Quando si costruisce a livello locale e cercando di utilizzare Modernizr carico/yepnope, i miei JS nei miei script.js il file in genere si presenta così ..Utilizzo di Drupal.settings.basePath in Modernizer/yepnope.js carichi

Modernizr.load([ 
    { 
    test: Modernizr.mq('only all'), 
    nope: '/sitename/docroot/sites/all/themes/theme/js/libs/polyfill.js' 
    }, 
    .... 

Così che funziona a livello locale sulla mia macchina, ma quando ho commesso i miei cambiamenti e spingere a il mio server di sviluppo di acquia il percorso del file per gli script caricati non è corretto, dal momento che non è la stessa configurazione credo.

http://mysite.devcloud.acquia-sites.com/mysite/docroot/sites/all/themes/theme/js/libs/polyfill.js

ha bisogno di essere al di sotto, senza il mysite/docroot nell'URL.

http://mysite.devcloud.acquia-sites.com/sites/all/themes/theme/js/libs/polyfill.js

Quindi questo mi porta al Drupal.settings.basePath. Se stampo questo mi dà/mysite/docroot/sul mio setup locale. Se lo faccio sul server di sviluppo, verrà stampato qualcosa di diverso (probabilmente solo /).

Così me di essere il dilettante assunto avrei potuto fare qualcosa di simile .. (perdonate il campione poveri, so che può essere fatto meglio)

var myroot = Drupal.settings.basePath 

Modernizr.load([ 
{ 
test: Modernizr.mq('only all'), 
nope: myroot + 'sites/all/themes/theme/js/libs/polyfill.js' 
}, 
.... 

E questo, naturalmente, non funziona. Restituisce solo query1 non definita.

Quindi sono sicuro che ci sono dei difetti in molti dei miei tentativi di fare questo lavoro .. quindi se qualcuno può suggerirmi qualcosa, sia sul flusso di lavoro che su come correggere il mio setup/codice, sarebbe fantastico.

Grazie

+0

Puoi disconnettere Drupal.settings.basePath e facci sapere cosa contiene? –

+0

Sul mio computer locale mostra "/ sitename/docroot /", che è corretto. Sul server di sviluppo dopo essere stato premuto, mostra "/", come previsto. Ho solo bisogno di ottenere questo percorso nel nope: 'path/to/polyfill.js' – humanaut

+0

Ciao, dovrai ottenere più codice (o esempio dal vivo) per ottenere aiuto. Il codice appena visualizzato sembra corretto, quindi il problema probabilmente viene da altrove. Il 'drupal' globale è dichiarato prima del tuo tag script? –

risposta

1

Forse ho solo una diversa configurazione locale quando si utilizza Acquia, ma perché non basta usare un percorso relativo come /sites/all/themes/theme/js/libs/polyfill.js?

1

E 'un po' tardi, ma può essere utile in ogni caso:

provare qualcosa di simile:

var jsFolderPath = window.location.protocol + "//" + window.location.host+ Drupal.settings.basePath + 'sites/all/themes/theme/js/libs/'; 

nope: jsFolderPath + 'polyfill.js' 

Poi aggiungere facilmente polyfills per ogni yesnope, a prescindere di essere server dev o in locahost.

Problemi correlati