Браузер не отображает CSS и JS

Я использую:

  • CentOS 7
  • Apache 2.4
  • php56-php-fpm
  • php72-php-fpm

на моем сервере разработки. Мне удалось его получить, поэтому я могу указать обработчик, и он поместит этот vhost в правильную версию PHP, однако CSS и JS, похоже, работают неправильно.

Я получаю эту ошибку:

scriptname.js загружен даже хотя его тип MIME («text / html») не является допустимым типом MIME JavaScript

, что в конечном итоге приводит к фатальной ошибке. Поиск в Google привел меня к разным сообщениям, и я первым добавил следующее в свой httpd.conf файл:

AddType text/css .css
AddType text/javascript .js

Но это не сработало.

Затем я добавил его в свой .htaccess, снова безуспешно.

Затем я нашел кое-что, что предлагало написать его примерно так:

AddType 'text/css; charset=UTF-8' .css

Это по большей части исправило CSS, но не .js .

Как мне сделать так, чтобы все работало должным образом?

(примечание: дайте мне знать, какое содержимое файла добавить, и я соответствующим образом отредактирую вопрос)

РЕДАКТИРОВАТЬ:

У меня есть сообщения об ошибках до:

Ошибка загрузки для файла with source / путь / к / file.js

Добавив это в мой файл vhost:

<Files *.js
  Header set Content-type "text/javascript"
</Files>

Похоже, переход к этому файлу показывает:

Доступ запрещен

права доступа к файлу для этого:

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

Заголовки в файле:

enter image description here

полный виртуальный хост:

<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>
1
задан 9 April 2019 в 18:29
2 ответа

Думаю, я вижу проблему. Ваш SetHandler применяется ко всем возможным URL-адресам на виртуальном хосте, независимо от того, является ли он файлом PHP или нет. Таким образом, все передается в PHP, даже если это статический файл. И поскольку PHP интерпретирует статический файл как PHP, вы получите результат.

Вместо этого вы должны отправлять обработчику только запросы на файлы PHP, выбирая их по имени файла:

        <FilesMatch \.php$>
            SetHandler "proxy:fcgi://127.0.0.1:9072"
        </FilesMatch>

Затем вы можете удалить ненужные избыточные бит, которые вы добавили.

3
ответ дан 3 December 2019 в 17:32

Ошибка 403 обычно возникает из-за ошибки разрешения. Это может быть либо каталог, либо уровень файлов.

В вашем случае, насколько я могу судить (только права доступа к файлу и корневому каталогу документа apache), с разрешениями все в порядке.

Не могли бы вы поделиться с нами разрешения каталогов родителей? (это может быть / var / www / dev / со слишком ограниченными разрешениями)

Если разрешения не позволяют «другое», 0755 должен это сделать ...

chmod 0755 /var/www/dev

Также / var / www / dev должен принадлежать "dev-admin". Если это не так, я бы предложил изменить владельца:

chown dev-admin: /var/www/dev

И @Michael Hampton прав. Никаких изменений не потребовалось (в конфигурации Apache CentOS 7 по умолчанию).

Ох! Просто чтобы убедиться, что мы охватываем все основы ... Является ли dev-admin пользователем Apache?

Если нет, вы можете либо изменить его в основной конфигурации Apache, либо изменив каталог dev (рекурсивно) с помощью правильный пользователь.

1
ответ дан 3 December 2019 в 17:32

Теги

Похожие вопросы