由于使用文件系统路径,Magento admin css丢失

ref*_*xiv 19 css magento

我无法使用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
Run Code Online (Sandbox Code Playgroud)

它仍然无法工作,所以我最终手动安装模块.然后我登录到管理员后端,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" />
Run Code Online (Sandbox Code Playgroud)

我立即删除了扩展程序并尝试将来自另一台服务器的权限与工作的Magento相匹配,但无济于事.我也有:

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

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

flo*_*och 42

编辑:正如@ michael-hampton提到的,这个解决方案打开了一个严重的安全漏洞,不应该使用.请不要在生产中使用!

我遇到了同样的问题,而且没有正确设置文件权限.为了允许Magento生成资产文件,媒体目录必须可由apache用户写入.

这样做

chmod -R o+w media
Run Code Online (Sandbox Code Playgroud)

如果apache不拥有此目录,则不一定允许apache在媒体目录中写入.

您应该检查apache实际上是否拥有媒体目录,首先检查正在运行的用户apache,然后相应地调整权限:

chown -R <apache_user> media
chmod -R o+w media
Run Code Online (Sandbox Code Playgroud)

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

  • 我有一个与OP类似的问题,将/ media所有权设置为运行Apache的用户的所有权. (3认同)
  • 或者未创建媒体文件夹时 (3认同)

小智 16

一种更简单的方法是直接转到magento数据库并core_config_data手动更改表.应该有一个名为dev/js/merge_files和的条目dev/css/merge_files.
这两个应该持有的价值1这两个值设置为.通过0,你会得到这个固定的,你的cssjs文件应该再次加载.测试中magento 1.5.x.

  • 为了防止有人现在看到这一点,`core_config_data`表中的css字段路径已更改为`dev/css/merge_css_files` (2认同)

ref*_*xiv 3

我最终通过浏览到相关管理页面并输入configForm.submit()我的 java 控制台来保存设置来禁用 CSS 合并来修复它。

不知道为什么 CSS 合并突然开始使用文件系统路径,我没有更改与此相关的任何内容(我正在安装的模块用于发票)。我在 Magento 中遇到过很多这样的随机问题,它似乎需要不断的修改。我绝对不愿意推荐另一个客户再次使用 Magento。