I have seen a couple of similar issues, but none of the solutions/reasons helped me. I installed Magento 2.4; tried it switch it to default and developer modes, forced it to compile and deploy static content (just in case, it says there is no need for that, but I tried just for sure; cash was flushed) and it seems like it does everything correctly, I see created files in pub
directory.
When the browser requests them it gets 404, mod_rewrite
for Apache is enabled, I checked if I change .htaccess it changes site behavior and Apache shows it is enabled it CLI. So it has to be fine.
I have Nginx installed as a proxy, but there are no problems with other CMS such as WordPress. It is only a Magento issue which I can't solve.
I use it in local environment in Virtual Box with Ubuntu 20.04.
Nginx has following rule for CSS/JS
location ~ .*\.(js|css)?$ { expires 7d; access_log off; }
Apache does not have any specific instructions for them. I get only image /frontend/Magento/luma/ru_RU/images/logo.svg
Do you have any ideas, what could be wrong?
2 Answers
It kind of sounds like you've deleted the .htaccess file out of pub/static. That will cause 404s for javascript and css.
If that file is missing recreate it from the contents here: https://github.com/magento/magento2/blob/2.4-develop/pub/static/.htaccess
And see if that helps. Then be careful not to delete that folder, just its contents, as needed.
-
No, both my .htaccess in
pub
andpub/static
are OK, I compared it with github's analogs they are the same. I cleared .htaccess inpub/static
and lost my only image I get. I returned it to it's initial state and got my image back. But there is still no CSS and JS.– NIckCommented Nov 3, 2021 at 6:16
This problem is related to nxinx config. Any attempt to set caching rules in nginx for js/css breaks functionality. I believe this issue may be often seen on preconfigured hosts and server setups. You should remove rules such as
location ~ .*\.(js|css)?$ { expires 7d; access_log off; }
I have tried different approaches including checking if file exists, but it did not work for me, if I leave caching options, nothing comes through. If anyone know how to set it up correctly please let me know.