代码之家  ›  专栏  ›  技术社区  ›  Josh Andreas Rehm

为什么magento 1.4按文件系统路径包含javascript文件?

  •  11
  • Josh Andreas Rehm  · 技术社区  · 15 年前

    我正在使用magento 1.4测试magento 1.3站点。我看到了非常奇怪和不一致的行为。Magento没有包含我的javascript文件的URL,而是使用JS文件的完整文件系统路径创建标记,如下所示:

    <script type="text/javascript" src="/home/my_username/public_html/js/prototype/prototype.js"></script>
    

    我相信这与新的“主题javascript和css文件合并为一个文件”功能有关。实际上,当我登录到admin并单击“flush javascript/css cache”时,第一个页面加载成功,我看到一个JS包含类似于:

    <script type="text/javascript" src="/media/js/5b8cfac152fcb2a5f93ef9571d338c54.js"></script>
    

    但随后的老化会加载每个带有完整路径名的JS文件。这显然行不通。有人对可能出现的问题或如何解决这个问题有任何想法吗?

    10 回复  |  直到 7 年前
        1
  •  9
  •   ThaKilla    14 年前

    转到系统->配置->开发人员设置->javascript设置->合并javascript文件(beta)并将其设置为“否”。它真的是一个测试版。

        2
  •  11
  •   marcinsdance    12 年前

    在我的情况下,这是权限问题。这些ssh命令在magento的根目录中运行,修复了它:

        # chown all to proper user and group, ie. www-data
        chown -R www-data:www-data *
        # change all files permissions to 644
        find . -type f -exec chmod 644 {} \;
        # change all directories permissions to 755
        find . -type d -exec chmod 755 {} \;
        # change all to be writable in var and media directories
        chmod -R 777 var/ media/
    

    如果它仍然不起作用,那么将mysql核心配置数据中path列的这两个值从“1”更改为“0”:

    • dev/css/合并\u css\u文件
    • dev/js/merge_文件
        3
  •  8
  •   Ben    14 年前

    编辑config.xml并没有给我带来什么好处,我不得不在数据库中禁用它。

    在表中' 核心配置数据 '用路径设置行的值' dev/js/merge_文件 '(config_id 772)至' '.

    不过,谢谢你给我指明了正确的方向!

        4
  •  8
  •   Avi Shefi    7 年前

    我遇到了同样的问题,并提出了以下解决方案:

    1. 验证Media/JS上的权限是否属于Magento安装文件夹所在的同一用户。
    2. 使用admin清除CSS/JS缓存。

    两者的结合实际上使事情恢复了正常。

        5
  •  4
  •   Alex    13 年前

    检查运行Web服务器的用户是否可以写入您的媒体文件夹。 我有一个符号链接指向一个只能由根目录写入的文件夹

    chown -R www-data:www-data media
    

    帮助。

        6
  •  1
  •   ThaKilla    14 年前

    我也有同样的问题。

    因为magento找不到javascript文件。查看您的/var/log/exception.log(您必须启用登录系统->配置->开发人员选项)

    在我的日志中有以下错误:

    异常“exception”,带有消息“warning:filemtime()[function.filemtime”:/var/www/js/calendar/lang/calendar-en.js in/var/www/app/code/core/mage/core/helper/data.php,位于/var/www/app/code/core/mage/core/functions.php:245行,stat失败。

    所以我创建了这个文件,它开始工作了!

        7
  •  1
  •   GDP Danny    12 年前

    编辑config.xml并没有给我带来什么好处,我不得不在数据库中禁用它。

    在表中 core_config_data 用路径设置行的值 dev/js/merge_files (config_id 772) to '0' .

    不过,谢谢你给我指明了正确的方向!

    这个解决方案对我有效,谢谢。

        8
  •  0
  •   Chris Norton    15 年前

    配置中“web”下的各种基本URL字段的值是什么?应该是沿着

    {{unsecure_base_url}}skin/
    

    对于基本皮肤URL。

        9
  •  0
  •   giftnuss    14 年前

    问题与javascript合并选项有关。不幸的是,没有javascript表单就不能工作。您必须将app/code/core/mage/core/etc/config.xml中的合并文件选项更改为0。

            <js>
                <merge_files>0</merge_files>
                <deprecation>0</deprecation>
            </js>
    

    之后,我删除了var目录中的所有缓存文件和会话文件。

        10
  •  0
  •   AKnox    13 年前

    在Magento 1.4中,配置ID是879(对我而言) 将此值设置为0将返回所有.js文件。超级怪异