cle*_*ula 7 deployment django url webfaction django-staticfiles
当我尝试在webfactional上运行我的服务器上的webapp时,我在2小时内遇到了关于STATIC_URL和STATIC_ROOT的问题.
当我加载网页时,所有请求都能正常运行,除非{{STATIC_URL}}的任何链接正在运行或加载.
因此,firebug上出现的常见错误是:
GET http://mydomain/static/extras/h5bp/js/libs/modernizr-2.5.3.min.js 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)
我的设置是:
urls.py我什么也没做,而且静态文件也没什么.
settings.py DEBUG = False
STATIC_ROOT = '/home/mydomain/webapps/static_app/'
STATIC_URL = 'http://mydomain/static/'
STATICFILES_DIRS = ()
Run Code Online (Sandbox Code Playgroud)
views.py视图示例
@csrf_exempt
def IndexView(request):
try:
request.user.is_authenticated()
except AttributeError:
return render_to_response('index.html',
{'request': request,},
context_instance=RequestContext(request))
return render_to_response('index.html',
{'request': request, 'profile' : request.user},
context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
index.html找不到代码的一部分
<script src="{{ STATIC_URL }}extras/h5bp/js/libs/modernizr-2.5.3.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
好吧,我遵循以下所有要点:https: //docs.djangoproject.com/en/1.4/howto/static-files/ 和另一个:http: //docs.webfaction.com/software/django/getting- started.html
我正在使用正确安装的应用程序,中间件,template_contexts.
如果我错过了什么,请帮助我搞清楚.
提前致谢!
- 编辑
我不得不说,如果我只是更改DEBUG = True将正常工作.
因为在urls.py上我有这段代码:
if settings.DEBUG:
# static files (images, css, javascript, etc.)
urlpatterns += patterns('',
(r'^media/(?P<path>.*)/$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT}))
Run Code Online (Sandbox Code Playgroud)
Yuj*_*ita 11
在开发环境中不需要的生产环境中必须发生两件事.
您必须运行manage.py collectstatic- 这会将所有静态文件收集到您的STATIC_ROOT目录中.
您必须STATIC_ROOT在STATIC_URL网址上提供目录.具体取决于您的生产设置.这甚至与django无关; 重要的是STATIC_ROOT内容可以在STATIC_URL.
假设您正在使用Apache,您可以将URL替换为目录.
Alias /static/ /path/to/my/static_root/
Run Code Online (Sandbox Code Playgroud)
如果你正在使用nginx,那就像是
location = /static/ {
alias /path/to/my/static_root/;
}
Run Code Online (Sandbox Code Playgroud)
我刚刚意识到你正在使用webfaction,在这种情况下你设置了一个静态应用程序,它只是在你定义的URL的目标目录中提供文件.我正在尝试记住我的webfaction登录以查看确切的过程,但要弄清楚应该不难.
更新:登录webfaction; 您可以创建一个符号链接的应用程序.简单!
创建一个服务于/ YOUR_STATIC_URL /的符号链接应用程序,并将其指向/ YOUR_STATIC_ROOT /.完成!
| 归档时间: |
|
| 查看次数: |
7213 次 |
| 最近记录: |