Obecnie rozpoczynam tworzenie witryn drupal na Acquia. Używanie git i praca lokalnie to dla mnie nowy przepływ pracy. Przy budowie lokalnie i próbuje wykorzystać modernizr obciążenia/yepnope moi JS w moich script.js złożyć zazwyczaj wygląda tak ..Korzystanie z Drupal.settings.basePath w pakiecie Modernizer/yepnope.js ładuje się
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: '/sitename/docroot/sites/all/themes/theme/js/libs/polyfill.js'
},
....
Tak, że działa lokalnie na moim komputerze, ale gdy oddaję moje zmiany i wcisnąć do mój serwer deweloperski acquia, ścieżka pliku załadowanych skryptów jest niepoprawna, ponieważ nie jest to ta sama konfiguracja, jak sądzę.
http://mysite.devcloud.acquia-sites.com/mysite/docroot/sites/all/themes/theme/js/libs/polyfill.js
To musi być poniżej, bez mysite/docroot w adresie URL.
http://mysite.devcloud.acquia-sites.com/sites/all/themes/theme/js/libs/polyfill.js
Tak, że doprowadza mnie do Drupal.settings.basePath. Jeśli wydrukuję to, otrzymam/mysite/docroot/na mojej lokalnej konfiguracji. Jeśli zrobię to na serwerze dev, wydrukowałbym coś innego (prawdopodobnie just /).
Więc ja będąc amatorem Zakłada mógłby zrobić coś takiego .. (wybacz słabą próbkę, wiem, można to zrobić lepiej)
var myroot = Drupal.settings.basePath
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: myroot + 'sites/all/themes/theme/js/libs/polyfill.js'
},
....
I to oczywiście nie działa. Po prostu zwraca zapytanie1 nie jest zdefiniowane.
Jestem pewien, że w wielu próbach wykonania tej pracy są błędy. Jeśli więc ktoś może mi coś zasugerować, albo związany z przepływem pracy, albo jak naprawić mój setup/kod, byłoby świetnie.
Dzięki
Czy możesz wylogować się z Drupal.settings.basePath i poinformować nas, co zawiera? –
Na mojej lokalnej maszynie wyświetla się "/ sitename/docroot /", co jest poprawne. Na serwerze dev po naciśnięciu pokazuje "/" zgodnie z oczekiwaniami. Potrzebuję tylko dostać tę ścieżkę do nope: 'path/to/polyfill.js' – humanaut
Witam, będziesz musiał pokazać więcej kodu (lub przykładu na żywo), aby uzyskać pomoc. Kod, który właśnie pokazałeś, wydaje się poprawny, więc problem prawdopodobnie pochodzi z innych źródeł. Czy globalny "Drupal" jest zadeklarowany przed tagiem skryptu? –