Django / Visual Studio / Azure チュートリアルhttp://www.windowsazure.com/en-us/develop/python/tutorials/django-with-visual-studio/に従いました。私は非常に単純なアプリケーションを持っています。基本的には、1 つの javascript と 1 つの css ファイルを含む 1 つの単純な html テンプレートです (コード例は最後にあります)。
ローカル デバッガーでコードを実行すると、すべて正常に動作します。デフォルトの VS および Azure SDK が提供する設定を使用して、ローカルの Azure エミュレーターでコードを実行しようとすると、javascript と css の両方の要求に対する応答として html ファイルを取得します。たとえば、request for/static/calculator.js
は、代わりにアプリケーションの html テンプレートを返しますcalculator.js
。
この動作の原因は何ですか?また、これを修正するにはどうすればよいですか?
更新: Azure エミュレーターで Web サイトを実行すると、エミュレーター ホスト上のすべての URL127.0.0.2
が「メイン ページ」、つまり で定義された唯一のビューを返すようviews.py
です。たとえば、127.0.0.2/
は (当然のことながら) Web ページを返しますが、 も同様127.0.0.2/nonexistenturl
です。これは、Azure エミュレーターで使用される fastcgi または IIS Express の構成ミスが原因ではないかと考えています。この問題を解決するための良い出発点は何ですか?
コード例:
HTML テンプレート リンク:
<link rel="stylesheet" type="text/css" href="/static/calculator.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/static/calculator.js"></script>
urls.py
:
urlpatterns = patterns('',
url(r'^$', 'ExamCalculator.Calculator.views.main_page'),
)
staticfiles 関連の設定はsettings.py
正しいはずです。
STATIC_ROOT = 'C:/.../static/'
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
...
)