为什么wordpress找不到我的javascript文件?为什么';我的javascript文件不能刷新吗?

为什么wordpress找不到我的javascript文件?为什么';我的javascript文件不能刷新吗?,wordpress,Wordpress,我通过wp\u enqueue\u script() 功能 我将文件放在主题文件夹/js/my javascript.js 但是wordpress找不到它!我会在wordpress插入的html源代码中看到脚本标记,但单击它会将我带到“未找到页面”。我到处看看这是否是缓存问题。关闭缓存,仍然没有任何内容 最后,我将my-javascript.js文件放在主题的根文件夹中,而不是“js”文件夹中。现在我的js文件被找到并加载 但是现在我不明白一个新问题。。我会编辑我的文件,更改不会反映!每次我进行

我通过
wp\u enqueue\u script()
功能

我将文件放在
主题文件夹/js/my javascript.js

但是wordpress找不到它!我会在wordpress插入的html源代码中看到脚本标记,但单击它会将我带到“未找到页面”。我到处看看这是否是缓存问题。关闭缓存,仍然没有任何内容

最后,我将my-javascript.js文件放在主题的根文件夹中,而不是“js”文件夹中。现在我的js文件被找到并加载

但是现在我不明白一个新问题。。我会编辑我的文件,更改不会反映!每次我进行更改时,我都必须更改js文件的文件名,并在我的enqueue脚本函数中重命名该文件……我只是想完成这项任务

那么为什么会发生这种情况呢?该网站托管在dreamhost上,我怀疑他们使用了一键式安装程序。dreamhost是否自行进行某种缓存?这就是为什么

我是哑巴吗?还是wordpress知道我讨厌它

编辑:

这就是我加载脚本的方式,也是我让它工作的方式,但是为什么我的脚本在我进行更改时不能刷新,为什么我将它放在theme的“js”文件夹中时不能工作

/* Add floater script */
function add_floater_div_script(){  
    /* wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);  */
    if ( is_page(1208) ) {  
       wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js', array('jquery'), '', true);  
    }             
}  
add_action( 'wp_enqueue_scripts', 'add_floater_div_script' ); 

编辑:将代码从“数组”更改为“数组”因为有人认为这是一个问题。我自己做了一个快速检查,PHP对这个空间没有问题,所以这并不能解释我试图解决的wordpress奇怪的行为。

我看到的最常见的问题是文件排队的方式有错误。你能在functions.PHP文件中发布让JS文件排队的代码吗?一定要确定参考法典和其他开发商材料:

作为将来的参考,它应该是这样的:

wp_enqueue_script( 'script', get_template_directory_uri() . '/js/my-javascript.js');
编辑:OP发布了他们的代码后,我看到他们的数组后面有一个空格,这导致了一个错误,下面是正确的代码:

function add_floater_div_script() {
  if ( is_page( 1208 ) ) {  
      wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js', array( 'jquery' ), '1.0.0', true );
  }
}
add_action( 'wp_enqueue_scripts', 'add_floater_div_script' );

尝试将您的排队操作包装到一个函数中,您将在设置主题后调用该函数

<?php
add_action( 'after_setup_theme', 'yourtheme_theme_setup' );

if ( ! function_exists( 'yourtheme_theme_setup' ) ) {
    function yourtheme_theme_setup() {
        add_action( 'wp_enqueue_scripts', 'yourtheme_scripts' );
    }
}

if ( ! function_exists( 'yourtheme_scripts' ) ) {
    function yourtheme_scripts() {
        if ( is_page( 1208 ) ) {
            wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js', array( 'jquery' ), '', true );
        }
    }
}


这是在wordpress中导入js的正确方法。

是的,缓存非常烦人,虽然硬重新加载应该可以解决这个问题,但我们不能期望客户端每次都这样做。wordpress添加了一种方法来解决这个问题:)

wp\u enqueue\u脚本
接受第四个参数作为版本号

所以每次更新后只需更新版本

对于开发,只需将其设置为
time()
…以便每次都重新加载它,而不会缓存它

wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js', array('jquery'), time(), true);
您的代码将如下所示

/* Add floater script */
function add_floater_div_script(){  
    /* wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);  */
    if ( is_page(1208) ) {  
       wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js', array('jquery'), time(), true);
    }             
}  
add_action( 'wp_enqueue_scripts', 'add_floater_div_script' ); 
确保从生产版本中删除
time()

或者您的文件将永远不会被浏览器缓存…只需在开发完成后设置主题的版本,这样每个新版本都会得到JS更新。

防止缓存加载的资源文件(如Javascript文件)的一个非常简单的方法是在要包含的文件名后添加一个随机值,如下所示:

       wp_enqueue_script( 'custom-floater', get_template_directory_uri() . '/custom-floater-8.js' . '?' . rand(), array('jquery'), '', true);
PHP函数

rand()
生成一个随机数,并作为查询字符串附加到文件名的“?”后面。这将强制在每次加载网页时重新加载文件


当然,对于生产版本,可以忽略它。

有时,问题可能很简单,例如enqueue_脚本名称的重复声明

  wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/custom-floater- 
  8.js', array('jquery'), '', true);

 ...

  wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/custom-floater- 
  8.js', array('jquery'), '', true);

例如,不要使用两次相同名称的“自定义脚本”。第二个脚本将不会被加载。

我已经编辑了问题并包含了排队代码。请看一看,看我是否做错了什么。我已经看过开发人员资料。@8oh8好的,看起来数组后面只有一个空格–我将编辑我的答案以显示正确的结果ct代码,但它应该是数组('jquery')而不是数组('jquery'))嗨,Bezier,运行了测试,当数组和左括号之间有空格时,PHP不会引发解析错误。我会编辑我的帖子,这样其他人就不会这么想。他正在将文件排成正确的队列…是缓存导致了问题…应该通过在每次编辑后更新版本号来解决…在开发过程中…
time()
可以设置为每次重新加载的版本;)在我看来就像是缓存问题。尝试将版本号添加到wp_排队_脚本()。它应该像
wp\u enqueue\u脚本('custom floter',get\u template\u directory\u uri()。/custom-flotter-8.js',array('jquery'),'1.2',true)  wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/custom-floater- 
  8.js', array('jquery'), '', true);

 ...

  wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/custom-floater- 
  8.js', array('jquery'), '', true);