当前位置: 动力学知识库 > 问答 > 编程问答 >

Why is Magento 1.4 including javascript files by filesystem path?

问题描述:

I am in the process of testing a Magento 1.3 site using Magento 1.4. I am seeing very weird and inconsistent behavior. Instead of including the URL of my javascript files, Magento is creating tags with the full filesystem path of the js files, as so:

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

I believe this is related to the new "Themes JavaScript and CSS files combined to one file" function. In fact, when I log into the admin and click "Flush JavaScript/CSS Cache", then the first page load is successful, and I see a single JS include similar to:

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

But subsequent age loads load every single JS file, with the full path names. Which obviously isn't going to work. Anyone have any ideas on what could be wrong or how to fix this issue?

网友答案:

go to System -> Configuration -> Developer Settings -> Javascript Settings -> Merge JavaScript Files (beta) and set it to "no". It is realy a beta :D

网友答案:

It was permissions issue in my case. These ssh commands run in the root directory of Magento fixed it:

    # 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/

If it still doesn't work then change these two values for path column in the core_config_data in MySQL from "1" to "0":

  • dev/css/merge_css_files
  • dev/js/merge_files
网友答案:

Editing the config.xml didn't do the trick for me, I had to disable it in the database.

In table 'core_config_data' set the value of the row with path 'dev/js/merge_files' (config_id 772) to '0'.

Thanks for pointing me in the right direction though!

网友答案:

Well, you actually didn't find a solution. I had the same problem, and finally I came up to the solution in my case: 1) Verify that the permissions on media/js belong to the same user that the magento installation's folder is. 2) Clean the CSS/JS cache using the admin.

The combination of the two actually got things back to normal. And to make it clear - merging in magento 1.4 does actually work.

Cheers!

网友答案:

Check if your media folder is writeable by the user you webserver runs with. I had a symlink to a folder that was only writeable by root

chown -R www-data:www-data media

helped.

网友答案:

@Fragilem - Are you sure both the owner and the group of ALL files on your Magento installation do belong to the right user? I had the same symptoms until I finally chgrp & chown'd all files to my web user.

网友答案:

I had the same Problem.

Its because magento can't find a javascript file. Look at your /var/log/exception.log (You have to enable the log in System -> Config -> Developer Options)

In my log was the following error:

exception 'Exception' with message 'Warning: filemtime() [function.filemtime]: stat failed for /var/www/js/calendar/lang/calendar-en.js in /var/www/app/code/core/Mage/Core/Helper/Data.php on line 631' in /var/www/app/code/core/Mage/Core/functions.php:245

So I created the file and voila it works !

网友答案:

Editing the config.xml didn't do the trick for me, I had to disable it in the database.

In table core_config_data set the value of the row with path dev/js/merge_files (config_id 772) to '0'.

Thanks for pointing me in the right direction though!

This solution is worked for me, thanks.

网友答案:

What are the values for the various Base URL fields under "Web" in the configuration? Should be something along the lines of

{{unsecure_base_url}}skin/

for the base skin URL.

网友答案:

The problem is related with the javascript merge option. Unfortunatly the form does not work without javascript. You have to change the merge_files option in app/code/core/Mage/Core/etc/config.xml to 0.

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

After that I removed all cache files and session files in var directory.

网友答案:

in magento 1.4 the config_id is 879 (for me) Setting this value to 0 gave me all my .js files back. Super weird

分享给朋友:
您可能感兴趣的文章:
随机阅读: