2016-04-18 8 views
1

私はdjango 1.5.11をサイトディレクトリにないロケールフォルダを持つ翻訳に使用しています。正しいフォルダを設定するためにLOCALE_PATHS変数を使用しました。 runserverを使用してアプリケーションを起動すると、マシンまたはサーバーのいずれかで翻訳が正しく機能します。問題は私がwsgiでそれをするときに来る。それは無視され、翻訳を探しているLOCALE_PATHSように見えるDjango 1.5.11とApacheでの翻訳

import os 
import sys 
import site 
site.addsitedir('/path/to/virtualenvs/site-packages') 

sys.path.append('/app/folder/') 
sys.path.append('/settings/folder/') 
sys.path.append('/virtualenvs/site-packages') 
sys.path.append('/virtualenvs/bin') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

activate_env=os.path.expanduser("/virtualenvs/bin/activate_this.py") 
execfile(activate_env, dict(__file__=activate_env)) 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

翻訳が動作していないのapacheを開始、:私のDjangoアプリは、以下のWSGIスクリプトでのpython 2.7.10でコンパイルされたApacheの2.4とmod_wsgiを添えています代わりにサイトフォルダに保存します。私はこの動作がどこから来ているのか理解していない(Apache mod_wsgiかもしれない?)。他の誰かが同じ経験をしていますか?

答えて

0

Django 1.8.15でもこの問題が発生しました。これがApacheで動作するには、LOCALE_PATHSの絶対パスを指定する必要があるようです。相対パスはサーバー上では動作しませんが、ローカルでは動作します。しかし、この動作を引き起こす原因は不明です。

+1

WSGIサーバーの現在の作業ディレクトリが実際にコードの場所にあるとは決して想像できません。あなたがコードを確実に移植するには、絶対パスを使用する必要があります。しかし、 '' os.path.dirname(__ file __) ''のようにいくつかのアンカーから計算してみて、ベースディレクトリをハードコーディングしないようにしてください。 –

+0

それは感謝します、ありがとう! – mhkuu