[[ともっくす alloc] init]

ともっくすの雑多な日記と技術的なメモ

本番環境のPyramidでPDFをダウンロードできるようにしたい

Pyramidのプロジェクトで,静的ファイルとしてPDFを置いておき,aタグでリンクを張ることで,そのPDFをダウンロードできるようにしたい.

Pyramidプロジェクトを作成したときに,静的ファイル用のstaticディレクトリができるので,そこにfileディレクトリを作って,その中にPDFを置いた.

で,そのPDFのURLをaタグのhref要素に設定した.

ローカルでPyramidを実行した場合は,問題無くPDFをダウンロード出来た.

しかし,本番環境にあげてみると,404が返ってくる.

これには詰まった.

キャッシュのせいじゃないかとか,URLが間違ってるんじゃないかとか,パーミッションが悪いんじゃないかとか,aタグを使うのが間違ってるんじゃないかとか,かなり悩んだ.

検索しても全然情報が無い.

で,頑張って探してたら,MANIFEST.inが怪しいんじゃないかと.

include *.txt *.ini *.cfg *.rst
recursive-include dicemaker *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml

MANIFEST.inの中身はこうなっている.

マニュアルを見てみると,pythonファイル以外についてはここに記述する必要があるっぽい.

というわけで,*.pdfを追加したら,無事に本番環境でもPDFがダウンロード出来た!

include *.txt *.ini *.cfg *.rst
recursive-include dicemaker *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.pdf

もっと勉強します.はい.