我遇到了完全相同的问题并修复了它。
最初,我的网站没有使用干净的网址。当我启用干净的 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
这将适用于链接、图像和任何其他包含引用文件/文档的路径的元素的硬编码路径。