0

我遵循了 Django / Visual Studio / Azure 教程http://www.windowsazure.com/en-us/develop/python/tutorials/django-with-visual-studio/。我有一个非常简单的应用程序,基本上是一个简单的 html 模板,带有一个 javascript 和一个 css 文件(代码示例在最后)。

当我在本地调试器中运行代码时,一切正常。当我尝试使用默认 VS 和 Azure SDK 提供的设置在本地 Azure 模拟器中运行代码时,我得到了 html 文件作为对 javascript 和 css 请求的响应。例如,request for/static/calculator.js返回应用程序的 html 模板,而不是calculator.js.

什么可能导致这种行为,如何解决?

更新:似乎当我在 Azure 模拟器中运行网站时,模拟器主机上的任何 url127.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.pystaticfiles相关设置应该是正确的:

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',
    ...
)
4

0 回答 0