我按照所有说明在本地主机上安装了 ModX 革命环境,它似乎安装没有错误,但所有指向 css/js 文件的链接都是无效路径。
问题是 manager/ 目录被包含在每个位置(有时是重复的)。从绝对路径中删除它的最佳方法是什么。
/*duplicated here */
`GET http://127.0.0.1/manager/manager/assets/ext3/resources/css/ext-all-notheme-min.css `
/*this should be not contain manager/ at all*/
`GET http://127.0.0.1/manager/connectors/layout/modx.config.js.php?action=&wctx=mgr `
最佳答案
安装过程中可能出了点问题,或者您可能需要修改服务器配置。要解决第 1 种可能性,请检查您的 MODX 配置中的路径。
MODX 中的路径,除了相当旧版本的软件外,都是在 4 个 php 文件中配置的。
其中 3 个是 config.core.php
的实例,其中仅包含:
<?php
define('MODX_CORE_PATH', '/path/to/core/');
define('MODX_CONFIG_KEY', 'config');
?>
请注意,MODX_CORE_PATH
是您的 MODX 核心文件夹的绝对路径,MODX_CONFIG_KEY
可以在安装过程中自定义,但是 'config'
是默认值。
文件的 3 个实例位于:
- 网络根目录,例如
'/'
- 连接器文件夹,例如
'/connectors/'
- 经理文件夹,例如
'/经理/'
它们中的所有 3 个都应包含相同的 config.core.php
副本,并且必须为其中的 PHP 常量分配有效值。核心文件夹应由执行 MODX (PHP) 的同一用户所有,并且应具有 0755
权限(偶尔需要 0775
但不建议在共享主机环境中使用) .
第 4 个配置文件,最重要的一个,位于 MODX_CORE_PATH
的子文件夹中,名为 config
,文件名为 MODX_CONFIG_KEY 。 '.inc.php'
。在上面的示例中,它将是:/path/to/core/config/config.inc.php
该文件为您的 MODX 安装需要访问的所有文件夹定义了具有绝对路径和绝对 URL(相对于 Web 根目录)的常量。同样,Web 根目录的路径和 URL 也在那里定义; MODX_BASE_PATH
和 MODX_BASE_URL
。
安装程序应该已经用正确的值填充了所有这些,但是当您遇到与路径相关的错误时,检查这些路径是一种很好的故障排除做法。
您的服务器配置也可以在这里发挥作用。例如,如果您将 MODX 安装在子文件夹中,而不是本地 Web 服务器的根目录中,则需要确保路径包含该子文件夹。
此外,如果您在 MODX 安装中启用了 Friendly-URLs,您会希望 Apache RewriteBase
或 nginx 等效项具有正确的值。假设您的本地 Web 服务器设置在:
/Applications/MAMP/htdocs/
你的 MODX 安装在 /Applications/MAMP/htdocs/modx-test/
您希望 MODX 响应于:
http://127.0.0.1/modx-test/index.php
你的 MODX_BASE_PATH
是 /Applications/MAMP/htdocs/modx-test/
你的 MODX_BASE_URL
是 /modx-test/
在您的 .htaccess
文件中,靠近顶部:
RewriteEngine On
RewriteBase /modx-test/
了解以上所有内容,您应该能够为您的 MODX 安装解决几乎所有涉及路径的问题。在不直接检查您的环境的情况下,如果我不得不大胆猜测,我会说安装脚本是从名为 manager
的子文件夹中运行的,因此它被定义为 MODX_BASE_URL
。随后,这些文件夹被移动,因此它们不再存在于 config.inc.php
文件中定义的绝对路径中。这只是一种可能性,如果不对,我很抱歉。但是再次使用上述信息,您应该能够找出问题的原因。
关于php - ModX 革命路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571997/