最近我一直在为我的网站添加一个负载的功能。为了让这个过程更快,我想把我的开发机器上的静态文件提供给我。具体来说,我想使用DJango v1.3.1附带的内置开发服务器;修改生产服务器是一个坏主意,每次修改时都必须上传静态文件,这浪费了大量的时间和精力。为什么STATIC_URL不能以'http://'或'/'作为DJango开发服务器?
让开发者发挥球,但一直是一个噩梦!我刚刚浪费了大约4个小时来尝试提供静态数据,结果发现我错误的是,开发服务器在STATIC_URL
开始时似乎不喜欢'/'?我想知道为什么和/或我在做什么错...
我一直在尝试使用the settings suggested in the docs,但是我错误地阅读了一些东西,或者还有更多。
我的项目是这样的:
<project root>
/app1
..various files..
/app2
..various files..
/static
/style
Style.css
/templates
manage.py
settings.py
settings_dev.py
settings_production.py
urls.py
我settings.py
检测我们正在运行的服务器,然后调用相应settings_dev.py
或settings_production.py
效果很好,我的所有设置,做工精细的生产服务器上。
我settings_dev.py
有以下几点:
DEBUG = True
ADMINS = (
('Jon', '[email protected]'),
)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'dbuser',
'PASSWORD': 'dbpassword',
'HOST': '',
'PORT': '',
}
}
MEDIA_ROOT = ''
MEDIA_URL = '/media'
STATIC_ROOT = 'C:/Users/jon/PycharmProjects/myproject/static'
STATIC_URL = 'http://192.168.1.4/static'
STATICFILES_DIRS =()
ADMIN_MEDIA_PREFIX = 'http://192.168.1.4/static/admin/'
TEMPLATE_DIRS = ('C:/Users/jon/PycharmProjects/myproject/templates',)
IS_PRODUCTION_SERVER=False
..和urls.py
包括以下内容:
这工作这么多我的模板拿起静态URL,给我(对示例)http://192.168.1.4/static/style/Style.css
但是如果我将STATIC_URL
更改为/static
...然后访问http://192.168.1.4/static/style/Style.css
我得到一个404错误:
'\style\Style.css' could not be found
那么这是怎么回事?
发现这是你的dev的服务器确实在运行'http:// 192.168.1.4',而不是'http://192.168.1.4:8000'? – 2012-01-17 09:25:20