我使用Timber和ACF Pro创建了一个高度自定义的WordPress主题,加载时间已经成为一个问题。其中一个错误是Javascript文件被加载两次,一次是版本号,一次没有。我已经使用wp_enqueue_script
来加载它,所以这不应该发生。我该怎么做才能解决这个问题?我应该提供哪些其他信息?
编辑1
我以一种有趣的方式加载脚本,因为我使用的是RequireJS,并且有一个开发模式,其中文件是单独加载的,另一个是加载了连接和缩小文件的文件;另外,不同的路由需要不同的Javascripts,这样可以缩短不太复杂的页面上的加载时间:
function loadRequireJS() {
wp_deregister_script('jquery');
global $post;
$devMode = false;
$post_slug=$post->post_name;
$app_base = $devMode ? $this->theme->uri . '/static/scripts' : $this->theme->uri . '/static/build';
wp_enqueue_script('requirejs', $app_base . '/require.js');
if(is_home()) {
// $deps = $devMode ? array( $app_base . '/index.js') : array( $app_base . '/index-min.js');
$deps = $devMode ? $app_base . '/index.js' : $app_base . '/index-min.js';
} else {
switch($post_slug) {
case 'designs':
case 'market-finds':
case 'travel':
// $deps = $devMode ? array( $app_base . '/blog.js') : array( $app_base . '/blog-min.js');
$deps = $devMode ? $app_base . '/blog.js' : $app_base . '/blog-min.js';
break;
default: // this is the smallest file and can be loaded into 404 page
// $deps = $devMode ? array( $app_base . '/travelExcursionsPage.js') : array( $app_base . '/travelExcursionsPage-min.js');
$deps = $devMode ? $app_base . '/travelExcursionsPage.js' : $app_base . '/travelExcursionsPage-min.js';
}
}
wp_localize_script( 'requirejs', 'require', array(
'baseUrl' => $app_base,
'deps' => array($deps)
));
wp_enqueue_script('app', $deps, array('requirejs'));
wp_enqueue_script('xrayquire', $app_base . '/xrayquire.js', array('requirejs'));
}
然后在我的Web检查器中,按以下方式加载文件:
它似乎同时加载了版本化和非版本化的脚本,所以如果这是一个问题,对我来说有点困惑。