我已经关注了Django / Visual Studio / Azure教程http://www.windowsazure.com/en-us/develop/python/tutorials/django-with-visual-studio/。我有一个非常简单的应用程序,基本上是一个带有一个javascript和一个css文件的简单html模板(最后的代码示例)。
当我在本地调试器中运行代码时,一切正常。当我尝试使用默认的VS和Azure SDK提供的设置在本地Azure模拟器中运行代码时,我将html文件作为对javascript和css请求的响应。例如,/static/calculator.js
请求会返回应用程序的html模板,而不是calculator.js
。
可能导致此行为的原因以及如何解决此问题?
更新:
看来,当我在Azure模拟器中运行网站时,模拟器主机127.0.0.2
上的任何网址都将返回"主页",即views.py
中定义的唯一视图。例如,127.0.0.2/
会返回网页(应该如此),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'),
)
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',
...
)