3

我在一个drupal网站上工作。当前的问题是,当使用url()base_path变量创建链接时,它在本地开发环境中可以正常工作,但是当将相同的代码放在服务器上时,url 会node在路径中添加字符串。

例如路径是<drupal site>/latestnews. 生成的路径是<drupal site>/node/latestnode,单击时会显示page not found错误。但是想提一下,当从主页单击时,链接工作正常(即生成正确的路径)。

任何帮助,将不胜感激。如果有帮助,我将使用 Pantheon 托管进行测试。

4

3 回答 3

1

您是否检查过“sites/default/settings.php”文件中的 $base_url 变量是否具有正确的值?根据文档“如果 Drupal 在您的站点上生成不正确的 URL,可能 * 在 HTML 标头(指向 CSS 和 JS 文件的链接)或页面上的可见链接 *(例如在菜单中),请取消注释 Base URL 语句(删除* 前导井号)并填写您的 Drupal 安装的绝对 URL。”

于 2014-10-10T18:36:27.163 回答
1

服务器是否偶然启用了病理模块?该模块的工作是重写不同位置的链接。它可能配置错误。如果已启用,请尝试禁用它,或在每种文本格式(admin/config/content/formats)中调整其配置。

于 2014-01-06T19:12:26.583 回答
1

我遇到了完全相同的问题并修复了它。

最初,我的网站没有使用干净的网址。当我启用干净的 url 并重写我的链接以使它们前面没有字符串“?q =”时,这破坏了我的硬编码链接。这是因为当不使用干净的 url 时,页面似乎在根目录中,但是当使用干净的 url 时,它们似乎在文件夹中。

以下示例显示了更新页面以使用干净的 url 会如何影响它。

Clean_urls_DISABLED
Page: SITE?q=node/7
Hard_coded_link_in_page: ?q=node/9
Link_displayed_in_browser: SITE?q=node/9

Clean_urls_ENABLED
Page: SITE/node/7
Hard_coded_link_in_page: node/9
Link_displayed_in_browser: SITE/node/node/9

请注意,更新为使用干净 url 的页面在浏览器中显示时,其链接中包含“node/node”。

解决方案是将“../”添加到所有硬编码的 url(对于首页以外的页面)。这样,其他内容(例如图像)的硬编码链接也可以正常工作。

Clean_urls_ENABLED
Page: SITE/node/7
Hard_coded_link_in_page: ../node/9
Link_displayed_in_browser: SITE/node/../node/9
Hard_coded_image_source_in_page: ../sites/default/files/img.jpg
Image_source_in_browser: SITE/node/../sites/default/files/img.jpg

这将适用于链接、图像和任何其他包含引用文件/文档的路径的元素的硬编码路径。

于 2014-10-12T07:41:34.797 回答