Djangoでreverse後のURLにスクリプト名が入ってしまう
レンタルサーバー上にCGIとしてDjangoを動かそうとしていて、このチケットのdjango.cgiを配置し、.htaccessでmod_rewriteの設定を
1 2 3 |
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ django.cgi/$1 [QSA,L] |
このような感じにして一応動いてはいたのですが、テンプレートタグから{% url %}で
r’^hoge/$’
への逆引きをしたつもりのURLが、
/django.cgi/hoge/
のようにrewrite後のスクリプト名が付いたURLになってしまっていました。
ドキュメントにはDjangoはなるべく自動的にrewrite前のURLを探すと書いてあったんですが、それが上手くいっていないようで。
で調べた所、そういう時はsettings.pyでFORCE_SCRIPT_NAMEを設定すれば良いようです。
1 |
FORCE_SCRIPT_NAME = '' |
でとりあえず解決。
細かい原因はよくわかってません。
参考
Forcing the URL prefix to a particular value
URL のプレフィクス部分を特定の値にする
関連記事
-
-
Django 1.5でDEBUG=Falseにしたら動かないとかstaticが出ないとか
Django 1.5でプロジェクト作って少しして試しにDEBUG=Falseにしてみたら「Serve
-
-
python-twitterで複数media(画像)を扱う
現時点で、python-twitterをpipで入れると2.0が入りますが、extended ent
-
-
Djangoのカスタムコマンドをコード内から呼ぶ
ドキュメントにまんま書いてあるけど一応メモ。 カスタムコマンド内から他のコマンドを呼び出したい
-
-
Python、DjangoでTwitter認証(Sign in with Twitter)するサンプル
トップページから認証リンクを押すとサインインを求められ、ユーザーのアクセストークンをDBに保存して何
-
-
Djangoのタイムゾーンサポートについて調べた
Djangoの1.4以降で追加されたタイムゾーンサポートのことがよくわかってなかったのでドキュメント
-
-
PySideインストール後にImportError
QtのPythonバインディングにはPyQtとPySideがあって、元々あったのはGPLのPyQtだ
-
-
pipでThe C extension could not be compiledとかいうWARNING
CentOS 6.5にpipでpython-twitterを入れようとしたら、依存パッケージのsim
-
-
PythonでC++のstd::mapみたいな挙動が欲しい
最近競技プログラミングの問題をちょろちょろやってて、それでC++を使ってるんですが、C++のstd:
-
-
DjangoでMySQLに絵文字を保存
Twitter関連のプログラムを書いていたのですが、絵文字を含むツイートをDBに保存しようとするとエ
-
-
python-twitterでツイート時刻(created_at)からローカルのdatetimeを作成する
python-twitterのStatusクラスからの投稿時刻の取り方には二通りあり、それぞれUTC