当我在电脑上开发网站时,一切都很好,因为drupal安装在虚拟主机的根目录中。但当我把网站移到另一个服务器的www子目录时,文件的链接被破坏了。URL看起来像"/sites/default/files/…",它们指向www根。我已经将RewriteBase /my_dir
添加到.htaccess文件中,但它仍然不起作用。
更新:错误其实是显而易见的:网址是绝对的,开头有"/"。无论如何都要感谢你们。
更新1:但这并不明显。我使用pathauto模块,当通过这个"/content/pagetitle"访问页面时,所以当我使用文件的相对路径时,它也不起作用。
我希望您可以通过将路径从/sites/default/files/
更改为file_directory_path()
来纠正错误。下面的一些函数可能对有用
base_url
-返回Drupal安装的基本URL
file_directory_path()
-返回一个字符串,其中包含Drupal的"files"目录的路径。
path_to_theme()
-返回当前主题元素的路径。
所以你的Drupal网站运行在一个子目录下?(例如http://www.yourwebsite.com/my_dir
)
您可以做的是取消注释并将settings.php
中的$base_url
变量更改为正确的URL。(第289行)。Drupal将为您的所有资产(css、js、images…)生成正确的URL,并且不需要PHP过滤器。
$base_url = 'http://www.yourwebsite.com/my_dir'; // NO trailing slash!