当托管在 openshift 上时,WordPress(Redux 框架主题)中样式表和 Javascript 的路径无效
Posted
技术标签:
【中文标题】当托管在 openshift 上时,WordPress(Redux 框架主题)中样式表和 Javascript 的路径无效【英文标题】:Invalid paths of Stylesheet and Javascript in WordPress (Redux framework themes) when hosted on openshift 【发布时间】:2017-11-24 02:57:25 【问题描述】:主题选项面板无法正确加载 OpenShift 上的某些主题。我正在使用使用 Redux 框架构建的 wordpress 的 Avada 主题。在 localhost 上一切正常,但是当我在 openshift 上托管网站时,“主题选项”不起作用,FireBug 的控制台显示样式表和脚本路径被 openshift 弄乱了。
示例样式表的当前(无效)url 如下所示:
https://my-website.com/wp-content/var/lib/openshift/5942968f2d527198350000f2/app-root/data/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/import_export/import_export /field_import_export.css
虽然应该是这样的:
https://my-website.com/wp-content/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/importt_export/import_export/field_import_export.css
整个网址中不应有任何 /var/lib/openshift/
我需要解决这个问题,但我对 Redux 框架中的编码一无所知,也不知道如何更改路径并将其指向正确的路径。
【问题讨论】:
您能否详细介绍一下您的情况下如何定义 URL 以及它们的路径应该是什么样的? 示例样式表的当前(无效)url 是这样的:https://my-website.com/wp-content/var/lib/openshift/5942968f2d527198350000f2/app-root/data/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/import_export/import_export/field_import_export.css
虽然应该是这样:https://my-website.com/wp-content/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/import_export/import_export/field_import_export.css
应该在整个 url 中不是任何 /var/lib/openshift/
我现在了解您的 URL 的外观以及它们的外观。现在,下一个问题是:您的 URL 是如何生成的?如果你在整个项目中搜索 field_import_export,你应该可以知道它的 URL 是如何生成的(函数调用和/或 src 属性中的路径是什么)
在哪个文件中查找?
我搜索了谷歌,它与一个叫做符号链接的东西有关?会不会是plugin_dir
?在这一切中我都是空白的..特别是 wordpress 编码
【参考方案1】:
试着把它放到functions.php中
function ReduxSymLinkURL()
$url = "https://my-website.com/wp-content/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/";
return $url;
add_filter( 'redux/_url', 'ReduxSymLinkURL', 10 );
【讨论】:
会试一试并通知您。【参考方案2】:Avada is a paid theme。当付费主题不起作用时,开发人员应该为您提供帮助。它与该主题完全相关,既不是 OpenShift 也不是 WordPress 的核心功能。较新的 WordPress 支持不同类型的托管和WordPress doc does have reference when URLs may be not like common traditional hosting。
我提供了一个简单的通用修复来在前端加载 CSS。 Sagar V 提供的 plugin-symlink 插件也是通用的。这是我们能做的最大的事情。您可以尝试寻找有经验的 Avada 主题用户。
依赖关系
确保缺少主题所需的任何依赖 Wordpress 插件。 Make sure that you have followed the guide of using Redux framework 或 that theme's official docs。
检查链接是如何生成的
This is my 6 years old demo WordPress running on free Openshift with default WordPress theme without any issue。该主题的头文件正在通过以下方式找到html5.js
:
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
为了找到它,我从 WordPress 管理员访问了 Appearance > Editor > Theme Header (header.php)
。 Lajos Arpad 是通过 cmets 来问你的。正确的方法是修改该代码。他/她说How are your URLs being generated?
,因为我们不知道哪些文件,如何生成链接。 header.php
适用于常见主题,但 Redux 框架主题可能会有所不同。 Lajos Arpad 已经建议你通过 cmets 在整个项目中搜索 field_import_export。
通用修复
但是我们没有代码。我们需要一个通用的修复。这是前端的临时修复。你在前端需要这个:
https://my-website.com/wp-content/wp-cntent/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/import_export/import_export/field_import_export.css
确保它存在,而不是 404。安装 Header & Footer like plugin。通过该插件在前端注入 CSS:
<link rel="stylesheet" href="https://my-website.com/wp-content/wp-cntent/themes/themeName/includes/lib/inc/redux/framework/FusionReduxCore/inc/extensions/import_export/import_export/field_import_export.css" type="text/css">
注释掉主题头文件中注入 CSS、Js 的行或它正在调用的位置。加载和测试。该修复不会抑制任何警告,但前端将加载到前端。
【讨论】:
【参考方案3】:这是一个已报告的已知问题 Here1、here2、here3、here4等等.
这不是 Redux 的问题。
主题会发生这种情况
您必须联系主题开发人员才能解决此问题。
但是对于我在上面发布的问题,您可以查看解决方案。
无论如何,我想在这里发布一些问题的修复
引用WordPress
还需要注意的是,PHP 的 FILE 魔术常量会自动解析符号链接,因此如果 wp-content 或 wp-content/plugins 甚至单个插件目录是符号链接的,此函数将不会正常工作。
主题链接是符号链接的。这就是问题所在。
可以在here找到示例修复
另一个 引用@Liggitt
Wordpress 提供了过滤插件路径的钩子。我编写了一个简单的插件,即使使用符号链接文件夹,它也会将插件 url 调整为正确。 ssh 进入您的 wordpress 应用程序,然后运行以下命令:
cd app-root/data/plugins/
git clone git://github.com/liggitt/wordpress-plugin-symlink.git
登录到您的 wordpress 管理控制台,并激活 plugin-symlink 插件。
【讨论】:
“可以找到一个示例修复 here”根本不起作用。 然后请添加更多详细信息。主题名称、开发者名称等以上是关于当托管在 openshift 上时,WordPress(Redux 框架主题)中样式表和 Javascript 的路径无效的主要内容,如果未能解决你的问题,请参考以下文章
当机器人托管在 heroku 上时如何制作 discord.js 图像搜索命令
当一个 MVC Web 应用程序托管在多个用户同时访问的服务器上时,应用程序和会话变量会发生啥?