问题
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?
回答1:
go to System -> Configuration -> Developer Settings -> Javascript Settings -> Merge JavaScript Files (beta) and set it to "no". It is realy a beta :D
回答2:
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
回答3:
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!
回答4:
I had the same problem and came up with the following solution:
- Verify that the permissions on media/js belong to the same user that the magento installation's folder is.
- Clean the CSS/JS cache using the admin.
The combination of the two actually got things back to normal.
回答5:
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.
回答6:
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 !
回答7:
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.
回答8:
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.
回答9:
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.
回答10:
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
来源:https://stackoverflow.com/questions/2141873/why-is-magento-1-4-including-javascript-files-by-filesystem-path