hum*_*aut 5 javascript drupal-7 modernizr yepnope
我目前正在开始在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'
},
....
Run Code Online (Sandbox Code Playgroud)
所以它在我的机器上本地工作,但当我提交我的更改并推送到我的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'
},
....
Run Code Online (Sandbox Code Playgroud)
这当然不起作用.只返回query1未定义.
所以我确信在我的许多尝试中都存在错误.所以如果有人可以向我推荐一些内容,无论是工作流相关还是如何修复我的设置/代码,那都会很棒.
谢谢
也许我在使用 Acquia 时只是有不同的本地设置,但为什么不只使用像 /sites/all/themes/theme/js/libs/polyfill.js 这样的相对路径呢?