由于使用文件系统路径,无法加载Magento CSS和JavaScript


29

我无法使用Magento Connect安装模块,出现Connection Error try again later错误。按照模块开发人员的说明,我尝试使用以下方法修复文档根目录中的权限:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod o+w var var/.htaccess app/etc
chmod 550 mage
chmod -R o+w media

它仍然无法正常工作,因此我最终手动安装了该模块。然后,我登录到管理后端,Magento尝试使用系统文件路径而不是如下URL来提供CSS文件:

<link rel="stylesheet" type="text/css" href="/home/user/public_html/js/calendar/calendar-win2k-1.css" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/reset.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/custom.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/xmlconnect/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/menu.css" media="screen, projection" />

我立即删除了该扩展名,并尝试将另一台服务器上的权限与可用的Magento匹配,但无济于事。我也有:

  • 清除了本地,APC和Magento缓存
  • 在错误日志中查找(已启用日志记录)
  • 在数据库中仔细检查了web / unsecure / base_url和web / secure / base_url的正确值
  • 重新启动,3次;)

未使用Minify。启用了合并CSS文件,但是在没有管理界面的情况下,我无法弄清楚如何禁用(保存和导航不起作用,即使我用Firebug替换了正确的值也是如此)。任何想法将不胜感激!

(问题最初由@reflexiv发布在Stack Overflow上


启用异常日志并检查是否所有文件都存在。
joseantgv

Answers:


42

Magento使用完整路径URL访问CSS文件是一个常见错误,它是由以下两种情况引起的:

  • 启用合并CSS文件
  • Magento无法读取/写入媒体/文件夹。

要解决此问题,请确保:

  • 您的Magento安装中存在media /文件夹。
  • 媒体/文件夹可由您的Web服务器写入。

正如@flochtililoch在Stack Exchange上发布的

您应通过首先检查哪个用户apache以身份运行,然后相应地调整权限,来检查apache实际拥有媒体目录。

chown -R <apache_user> media
chmod -R ug+w media

此处更多信息:Magento文件系统权限


由于启用了CSS / JS合并,我遇到了同样的问题。
DmitryR

1
@DmitryR:启用合并本身不是问题,Web服务器无法写入媒体是问题。启用合并后,它将尝试执行此操作,但失败并导致结果。;)
Navarr 2015年

这有一个严重的错误:它不仅使该文件夹对apache用户可写,而且使该文件夹对所有人都可写。不要这样做。它打开了一个巨大的安全漏洞。
迈克尔·汉普顿

好决定。我将其更新为ug + w而不是o + w
Navarr

3

将站点从实时服务器复制到本地开发(MAMP)apache服务器时,我刚刚遇到了非常相似的问题。以下为我解决了它:

  1. 结算media/cssmedia/js所有文件
  2. 在数据库表core_config_data设置中:设置
    dev/js/merge_files为0(为1)
    dev/css/merge_css_files至0(为1)
  3. 清算 var/cache

重新加载的前端和后端以及现在的css / js文件已正确提供。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.