Ich beginne gerade mit der Entwicklung von Drupal-Sites auf Acquia. Mit git und lokal arbeiten ist ein neuer Workflow für mich. Wenn lokal Gebäude und versucht Modernizr Last/yepnope, meine JS in meinem script.js zu verwenden Datei sieht in der Regel wie folgt ..Verwenden von Drupal.settings.basePath in Modernisierer/yepnope.js lädt
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: '/sitename/docroot/sites/all/themes/theme/js/libs/polyfill.js'
},
....
So, die lokal auf meinem Rechner funktioniert, aber wenn ich meine Änderungen zu übernehmen und Push-to Mein acquia development server Der Dateipfad für die geladenen Skripte ist falsch, da es nicht das gleiche Setup ist, denke ich.
http://mysite.devcloud.acquia-sites.com/mysite/docroot/sites/all/themes/theme/js/libs/polyfill.js
Es muss die folgenden, ohne die mysite/docroot in der URL sein.
http://mysite.devcloud.acquia-sites.com/sites/all/themes/theme/js/libs/polyfill.js
Damit bringt mich zu Drupal.settings.basePath. Wenn ich das ausdrucke gibt es mir/mysite/docroot/in meinem lokalen Setup. Wenn ich es auf dem Dev-Server mache, würde es etwas anderes ausdrucken (wahrscheinlich nur /).
So mich der Amateur angenommen zu sein ich so etwas tun könnte .. (verzeihen die schlechte Probe, weiß ich es besser gemacht werden kann)
var myroot = Drupal.settings.basePath
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: myroot + 'sites/all/themes/theme/js/libs/polyfill.js'
},
....
Und das natürlich nicht funktioniert. Just Returns Abfrage1 ist nicht definiert.
Also bin ich mir sicher, dass es Fehler in vielen meiner Versuche gibt, dies zu machen. Wenn also jemand mir etwas vorschlagen kann, entweder Workflow oder wie ich mein Setup/Code repariere, wäre das großartig.
Dank
Können Sie Drupal.settings.basePath ausloggen und lassen Sie uns wissen, was es enthält? –
Auf meinem lokalen Computer wird "/ sitename/docroot /" angezeigt, was korrekt ist. Auf dem Dev-Server wird nach dem Push-Vorgang wie erwartet "/" angezeigt. Ich muss diesen Pfad nur in den Nö-Pfad bringen: 'path/to/polyfill.js' – humanaut
Hallo, du musst mehr Code (oder Live-Beispiel) zeigen, um Hilfe zu bekommen. Der gerade angezeigte Code scheint korrekt zu sein, so dass das Problem wahrscheinlich von woanders kommt. Ist das globale 'Drupal' vor Ihrem Script-Tag deklariert? –