И Firefox и хром показывают, что файлы JavaScript с моего сервера подаются в качестве текста/HTML типа MIME. Файлы JavaScript имеют .js расширение.
Во-первых, mime_module установлен и активен:
apachectl -M | grep mime
mime_magic_module (shared)
mime_module (shared)
Syntax OK
Во-вторых, у меня есть это в моем conf файле:
AddType text/css .css
AddType text/javascript .js
Я пытался добавить это:
<Files "*.js">
ForceType text/javascript
</Files>
и перезапущенные апачи, но файлы JavaScript все еще показывают "текстом/HTML" в Chrome и Firefox. Ничто не показывает в error.log, и access.log не возвращает ничего полезного:
1.2.3.4 - - [03/Mar/2015:10:42:00 -0500] "GET /some/dir/js/app-min.js HTTP/1.1" 200 14642
Вот заголовки на одном из .js файлов (как замечено в Firefox)
Connection: close
Content-Type: text/html; charset=UTF-8
Server: Apache
Strict-Transport-Security: max-age=63072000; includeSubDomains
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Permitted-Cross-Domain-Policies: master-only
X-WebKit-CSP: default-src 'self'
X-XSS-Protection: 1; mode=block
Этот файл показывает типом html
в инспекторе Firefox.
Вот заголовок того же файла, как подается апачским экземпляром моего ноутбука:
Connection: Keep-Alive
Date: Tue, 03 Mar 2015 15:43:52 GMT
Keep-Alive: timeout=5, max=95
Server: Apache/2.4.7 (Ubuntu)
Этот файл показывает типом js
в инспекторе Firefox. Обратите внимание, что локальный экземпляр Apache (2.4) не отвечает Content-Type
.
Почему основной сервер игнорирует AddType? Я добавил это и к httpd.conf и к ssl.conf (хотя мой сайт вызывает 443). Я перезапустил апача (никакие синтаксические ошибки).
Проблема решена. conf.d / php.conf содержал следующие строки:
AddHandler php5-script .php .phtml .html .css .js
AddType text/html .php
Я изменил первую строку на
AddHandler php5-script .php .phtml .html
AddType text/html .php
Затем сохранил и перезапустил Apache. Файлы js и css теперь отображаются с правильным типом mime в Firefox / Chrome.
В стороне я попытался добавить AddType text / javascript .js
чуть ниже AddType text / html .php
,но файлы по-прежнему отображаются как text / html
в Инспекторе. Мне пришлось удалить .css и .js из AddHandler для отправки правильного типа mime.
У меня возникла проблема с smilimar, какой-то системный администратор добавил следующую директиву con conf.modules.d / 10-php.conf:
SetHandler application/x-httpd-php
Но это установило все расширения для этого обработчика, поэтому я меняю это для:
AddHandler php5-script .php
Проблема решена :)