これはなに
coreserver上でdjangoのwebアプリを動かした時にcssが反映されない
-> 解決した話
結論
coreserverでdjangoのアプリを動かす時は、staticフォルダは/public_htmlに作る。
背景
自分:経理屋 -> 2023/04からデータアナリストへ転職。djangoは初心者。pythonはデータ分析で経験5年くらい。
サーバー:coreserver CORE-X
最近、地域のボランティアに加わっていて、そこでとある活動でwebアプリを作ろうという話になりました。
その際に、webアプリとは別に活動団体のホームページを立てるサーバーがcoreserverだったため、webアプリもcoreserver上に作ろうという話になりました。(一般的にはレンタルサーバーでdjangoを動かすのはおすすめされていないようです。これから作る人はやめときましょう。)
サーバ内の構成
<修正前>
- /home/project_name/
- mysite
- mysite
- templates
- index.html
-
static
- css
- main.css
- css
- templates
- mysite
- public_html
- mysite
<修正後>
- /home/project_name/
- mysite
- mysite
- templates
- index.html
- templates
- mysite
- public_html
-
static
- css
- main.css
- css
-
static
- mysite
詳細
手元のパソコンでdjangoを動かしていた時は、<修正前>のようなcssの保存場所で思った通りのページが表示されていました。
しかし、coreserverに同じ構成でファイルをアップロードしたところ、cssが全く反映されていないページが表示されるようになってしまいました。
settings.pyやindex.htmlの書き方が悪いのかと思い色々と試行錯誤していましたが一向に改善しませんでした。1ヶ月くらい。
ずっと長いこと改善できず、そろそろこの案件はぶん投げようかなと思っていたところ、たまたまネットで見かけた記事を元にcssファイルの置き場所を<修正後>のように変えたところ、奇跡的にcssが反映されるようになりました。
どうやらcoreserverで使用しているlitespeedの設定でそうなるようで、やはり手元のPCで動かしている時とサーバーにデプロイした時とでは色々違うんだなと実感。
もし同じ現象でスタックしている人の参考になれば。