DockerでCSSが適用されない時に見直すApacheの設定
Dockerで開発をしている時、CSSが適用されないことに気づいた。
試しにMAMPの環境で実行してみる。するとCSSは適用される。
原因はApacheの設定
Apacheのhttpdの設定でEnableSendfile
をオフにしてやれば良いらしい。
EnableSendfile
は、一度読み込んだ静的なファイル(HTML/CSS, JavaScript)を、再度読み込まずにキャッシュ内容を送る機能のようだ。
本番環境においてはリクエスト数を減らせるので便利な機能だ。
さっそくApacheの設定ファイルを書き換えよう。コンテナに入って、
$ sudo docker exec -it コンテナ名 bash
apacheの設定ファイルを探す。CentOSでは以下のディレクトリにある。
(Debianではhttpd.conf
ではなく、apache2.conf
)
cat /etc/httpd/conf/httpd.conf
httpd.conf
の内容をコピーして、ホストにそのままapache.conf
として出力してしまう。
cat /etc/httpd/conf/httpd.conf > /var/www/html/apache.conf
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.
# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
.
.
.
.
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults if commented: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
EnableSendfile on
上記のapache.conf
とコンテナ内のapache2.conf
をマウントしてやる。
apache2.conf
を適当なディレクトリに移動した後、docker-compose.yml
を修正
version: '3'
services:
web:
image: php-apache:latest
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./html:/var/www/html
- ./php_apache/apache.conf:/etc/httpd/conf/httpd.conf
ports:
- 8080:80
depends_on:
- mysql
apache.conf
を修正EnableSendfile
をoff
にしてやる。
EnableSendfile off
あとはコンテナを再起動。
EnableSendfile
のオプションはバージョンによっては無くなっているらしい。
Author And Source
この問題について(DockerでCSSが適用されない時に見直すApacheの設定), 我々は、より多くの情報をここで見つけました https://qiita.com/tarch710/items/2dfd935444df94d4eb89著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .