我目前正在 Acquia 上开发 drupal 站点。使用 git 并在本地工作对我来说是一个新的工作流程。在本地构建并尝试使用 Modernizr load / yepnope 时,我的 script.js 文件中的 JS 通常如下所示。
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: '/sitename/docroot/sites/all/themes/theme/js/libs/polyfill.js'
},
....
所以这在我的机器上本地工作,但是当我提交我的更改并推送到我的 acquia 开发服务器时,加载脚本的文件路径不正确,因为我猜它不是相同的设置。
http://mysite.devcloud.acquia-sites.com/mysite/docroot/sites/all/themes/theme/js/libs/polyfill.js
它必须是下面的,URL 中没有 mysite/docroot。
http://mysite.devcloud.acquia-sites.com/sites/all/themes/theme/js/libs/polyfill.js
这让我想到了 Drupal.settings.basePath。如果我把它打印出来,它会在我的本地设置上给我 /mysite/docroot/ 。如果我在开发服务器上执行此操作,它会打印出不同的内容(可能只是 / )。
所以我作为业余爱好者假设我可以做这样的事情..(原谅可怜的样本,我知道它可以做得更好)
var myroot = Drupal.settings.basePath
Modernizr.load([
{
test: Modernizr.mq('only all'),
nope: myroot + 'sites/all/themes/theme/js/libs/polyfill.js'
},
....
这当然行不通。只是返回 query1 没有定义。
所以我确信在我的许多尝试中都存在错误,所以如果有人可以向我提出一些建议,无论是与工作流相关的还是如何修复我的设置/代码,那就太好了。
谢谢