I'm using:
- CentOS 7
- Apache 2.4
- php56-php-fpm
- php72-php-fpm
on my dev server. I managed to get it so I can specify a handler and it will put that vhost on the correct PHP version, however CSS and JS seem to be going awry.
I get this error:
scriptname.js was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type
which eventually leads to fatal error's. Googling it led me to various posts and I added the below first to my httpd.conf
file:
AddType text/css .css
AddType text/javascript .js
But that didn't work.
I then added it to my .htaccess, again with no success.
I then found something that suggested writing it like this:
AddType 'text/css; charset=UTF-8' .css
This did fix the CSS for the most part – but not the .js
.
How do I get it so everything works as expected?
(note: let me know which file contents to add and I'll edit question accordingly)
EDIT:
I've got the error messages down to:
Loading failed for the with source /path/to/file.js
By adding this to my vhost file:
<Files *.js
Header set Content-type "text/javascript"
</Files>
Seems going to that file shows:
Access Denied
file permissions for there:
drwxr-xr-x 2 dev-admin dev-admin 42 Apr 4 11:37 ./
drwxr-xr-x 4 dev-admin dev-admin 27 Mar 12 17:21 ../
-rw-r--r-- 1 dev-admin dev-admin 86927 Mar 1 15:14 jquery.min.js
-rw-r--r-- 1 dev-admin dev-admin 5094 Apr 4 11:37 main.js
Headers on file:
full vhost:
<VirtualHost *:80>
ServerName site1.development
DocumentRoot /var/www/dev/site1
<Directory /var/www/dev/site1>
# removing this shows the MIME type errors from before
<Files *.css>
Header set Content-type "text/css"
</Files>
# removing this shows the MIME type errors from before
<Files *.js>
Header set Content-type "text/javascript"
</Files>
SetHandler "proxy:fcgi://127.0.0.1:9072"
AllowOverride all
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
Best Answer
I think I see the problem. Your
SetHandler
is applying to every possible URL in the virtual host, without regard for whether it is a PHP file or not. Thus everything gets passed to PHP, even if it is a static file. And because PHP's interpreting the static file as PHP, you get the results you got.You should instead send only requests for PHP files to the handler, by selecting them by filename:
You can then remove the unnecessary redundant
<Files>
bits that you had added.