为什么我不能在没有403-禁止的情况下将脚本代码添加到主题设置中?

时间:2017-02-04 作者:Rainer Brumshagen

我们(我和儿子)修改了一个脚本-“/js/sticky menu”。js’-只有当Cloudflare“火箭装载机”关闭时,它才能工作。

遵循tutorial 对于Rocket Loader,我尝试通过将此代码添加到标题中来排除脚本(使用Genesis的主题设置):

<script data-cfasync="false" src="/javascript.js"></script>      
我将代码修改为

<script data-cfasync="false" src="/js/sticky-menu.js"></script>
保存代码后,我收到以下警告消息:

403禁止

在您对此站点的请求中检测到潜在的不安全操作。

此外,使用脚本的完整路径也不起作用。

这是我的website.

你有这个问题的解决方案吗?

你好,雷纳·布鲁姆沙根

2 个回复
最合适的回答,由SO网友:Scott 整理而成

解决方案:

因为主题JavaScript不在:

/js/sticky-menu.js
相反,它位于您的主题文件夹中(正如您的主题名称所示lifestyle-pro, 从网站的HTML中可以找到):

/wp-content/themes/lifestyle-pro/js/sticky-menu.js
所以你的<script> 代码应为:

<script data-cfasync="false" src="/wp-content/themes/lifestyle-pro/js/sticky-menu.js"></script>
额外好处:使用WordPress功能可以更好地实现这一点get_stylesheet_directory_uri(). 在这种情况下,您的代码将是:

<script data-cfasync="false" src="<?php echo get_stylesheet_directory_uri(); ?>/js/sticky-menu.js"></script>
更好的方法是使用wp_enqueue_script() 功能与wp_enqueue_scripts 过滤器挂钩,如上所述in this WordPress document.

SO网友:Rainer Brumshagen

在这种情况下,解决方案是

取消激活插件“wordfence“,这不允许写入head-第节functions.php\' 获取“粘滞菜单”。js正在工作。在此更改之后,无需将脚本放入head-部分我得到了“函数”的正确代码段。php\'来自this tutorial.

相关推荐

当我尝试登录时,我正在创建的插件出现‘Headers Always Sent’错误

我正在尝试创建我的第一个插件。到目前为止,它实际上工作正常,但有一个错误:当我尝试登录到wp admin时,会收到一条“Headers ready Sent”PHP消息。如果我从wpcontent/plugins目录中删除插件文件,像往常一样登录,然后替换插件文件,它工作得很好——这似乎只是在登录和注销时发生的。我的(缩写)代码是:<?php /* Plugin Name: Product Manager Plugin URI: http://www.tech-knowled