【问题标题】:drupal prepending 'node' to the link urldrupal 将“节点”添加到链接 url
【发布时间】:2014-01-24 05:43:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: php drupal-7 pantheon


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。似乎找不到任何这样的插件/模块。但是有一个名为 path 的模块,它似乎不包含任何导致此问题的选项。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的回答。我现在关闭了这个项目,所以无法检查提到的选项。不过还是谢谢你的回答:)
    【解决方案3】:

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

    最初,我的网站没有使用干净的网址。当我启用干净的 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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      相关资源
      最近更新 更多