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

为什么Magento 1.4按文件系统路径包含javascript文件?,javascript,magento,relative-path,minify,Javascript,Magento,Relative Path,Minify,我正在使用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文件

我正在使用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文件合并到一个文件”功能有关。事实上,当我登录到管理员并单击“刷新JavaScript/CSS缓存”时,第一个页面加载成功,我看到一个JS包含类似于:

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


但随后的age加载每个单独的JS文件,并带有完整的路径名。这显然是行不通的。有人知道什么地方可能出错或如何解决此问题吗?

配置中“Web”下的各种基本URL字段的值是多少?应该是类似于

{{unsecure_base_url}}skin/

对于基本皮肤URL。

转到系统->配置->开发人员设置->Javascript设置->合并Javascript文件(测试版),并将其设置为“否”。这确实是一个beta:D

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

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

0
0

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

编辑config.xml对我来说没用,我不得不在数据库中禁用它

在表“core\u config\u data”中,将路径为“dev/js/merge\u files”(配置id 772)的行的值设置为“0


谢谢你给我指出了正确的方向

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

  • 验证media/js上的权限是否属于magento安装文件夹所在的同一用户
  • 使用admin命令清理CSS/JS缓存

  • 这两种方法的结合实际上让事情恢复了正常。

    编辑config.xml对我来说没用,我不得不在数据库中禁用它

    在表
    core\u config\u data
    中,将路径为
    dev/js/merge\u files(config\u id 772)的行的值设置为“0”

    谢谢你给我指出了正确的方向


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

    我也有同样的问题

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

    在我的日志中出现以下错误:

    异常“exception”,消息为“Warning:filemtime()[function.filemtime]:stat在/var/www/app/code/core/Mage/core/Helper/Data.php第631行/var/www/app/code/core/Mage/core/functions中的/var/www/js/calendar/lang/calendar-en.js失败。php:245


    所以我创建了这个文件,瞧,它工作了

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

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

    chown -R www-data:www-data media
    

    帮助。

    我的情况是权限问题。以下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/merge\u css\u文件
    • dev/js/merge_文件

    是的,就是这样。我甚至试着用…@Mattias Bomelin替换{{unsecure_base_url}}但没有用——我还没有找到答案。当我这样做的时候,我会把它作为一个答案贴在这里并接受它。如果要跟踪此问题,请单击向下投票箭头下的星号,将其标记为收藏夹。这是一个简单的权限问题,尽管表现形式很奇怪。确保您的
    媒体
    文件夹可由web服务器用户/组写入(无论您希望如何写入),并且一切正常。在某些情况下(如我的情况),您甚至可能无法进入管理员。我听从了尼克网站上的建议()。我必须运行一个查询来临时更改设置,然后登录并清空缓存,然后重新更改设置(再次使用查询,因为mysql已经打开)。查询:更新核心配置数据集
    =0,其中
    路径
    ='dev/js/merge_files';我还想知道删除var/cache/*是否有效。请让suer清除服务器和磁缓存。。然后照@Marcindance说的做。。。一切都会成功的!非常感谢。这是我的解决办法。非常感谢。这个问题也发生在我的1.7.0.1上。。。禁用“dev/js/merge_files”是meIf将merge Javascript和merge CSS设置为“No”的唯一解决方案,根本问题可能是您的var/目录不可写。尝试检查权限和所有权。谢谢:)为我工作!!!我的问题是,我无法在编辑器“媒体存储”中看到图像,甚至创建文件夹按钮不起作用,浏览文件和上载文件按钮不可见。