use*_*981 2 django django-templates django-views
我是Django的新手.我阅读了文档,我对媒体根文件和静态根文件感到困惑,我应该把我的css文件和我的javascript文件放在一起.
你们能指点我正确的方向吗?项目设置:
Project
-myapp
-model,view,and test
-template
- base.html
- index.html
- view1
- view2
- media
- css
- style.css
- ie.css
- js
- img
-setting.py
-url.py
Run Code Online (Sandbox Code Playgroud)
我的static_url,static_root,media_url,media_root,STATICFILES_DIRS和STATICFILES_FINDERS应该是什么样的?
我目前如何加载我的css文件是通过base.html使用以下内容:
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static user_stylesheet %}"type="text/css" media="screen"/>
Run Code Online (Sandbox Code Playgroud)
那么管理静态文件的最佳和最有效/最正确的方法是什么?谢谢大家的帮助.我感谢您的时间和精力.
静态文件是一个简单的过程:
Django将搜索static/任何INSTALLED_APPS用于静态文件的应用程序内的目录.如果您的文件与任何应用程序无关,则可以将它们放在单独的目录中.这个目录应该添加到STATICFILES_DIRS(一个元组),所以django知道它.在你的情况下你应该有STATICFILES_DIRS = ('/home/user/Project/template/media',)
加入django.contrib.staticfiles你的INSTALLED_APPS
现在,如果您正在对此进行测试runserver,请打开urls.py并添加from django.contrib.staticfiles.urls import staticfiles_urlpatterns到顶部,并在定义所有URL后,在文件末尾添加urlpatterns += staticfiles_urlpatterns()
您已经有了正确的方法来访问问题中的静态文件.另一种方法是使用{{ STATIC_URL }},并确保你发送你的回复RequestContext.如果您使用的是基于类的视图,则无需进行任何更改.对于其他普通视图方法,只需使用render快捷方式.
STATIC_URL并STATIC_ROOT在部署时派上用场.
STATIC_URL是您的Web服务器配置的URL前缀,指向系统中包含静态文件的位置.这是一个url组件,必须以斜线结尾.例如/static/
STATIC_ROOT这是系统上目录的路径.当您准备部署时,运行该collectstatic命令,django将找到所有静态文件并将其转储到指向的目录中STATIC_ROOT.然后,您可以将此目录放在DOCUMENT_ROOT您的Web服务器配置的文件夹中.然后,将/static/URL指向此文件夹.例子是STATIC_ROOT = /home/user/project/www/
如果Apache配置了DOCUMENT_ROOT的/var/www/,和你的STATIC_URL设置/static/; 运行后collectstatic,将文件夹的内容移动/home/user/project/www/到/var/www/static/.
STATICFILES_FINDERS.此设置列出了django在运行时可用于搜索静态文件的方法,collectstatic通常根本不进行修改.MEDIA_ROOT,MEDIA_URL.这些设置控制文件系统位置,以及使用django上传的任何文件的URL前缀; 这些不可能是一样的STATICFILES_DIRS.您需要手动处理此操作,因为collectstatic不会触及这些位置.如果您正在开发中测试文件上载,则可以使用django.views.static.serve()来提供文件MEDIA*.| 归档时间: |
|
| 查看次数: |
3682 次 |
| 最近记录: |