Назад | Перейти на главную страницу

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

Я использую:

на моем сервере разработки. Мне удалось его получить, поэтому я могу указать обработчик, и он поместит этот 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.

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

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

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

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

Ошибка загрузки для с источником /path/to/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

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

полный 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>

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

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

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

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

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

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

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

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

chmod 0755 /var/www/dev

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

chown dev-admin: /var/www/dev

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

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

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