[python]如何在django中访问静态文件
对于django项目中的静态文件,尽管django的建议是让每个app拥有自己的static目录,然后由django将这些静态文件汇总到一起,但我的习惯是将静态文件目录/static/
放在根目录下,即
myproject/
|- manager.py
`- myproject/
|- app1
|- app2
|- static/ <-- 静态文件都放在这里
| |- js/
| `- css/
|- urls.py
|- settings.py
`- ...
这样部署之后可以将static
目录移出项目由nginx单独处理,而开发时就得改下urls.py
使python能处理这些静态文件。
from django.conf import settings
from django.conf.urls.static import static
...
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
最后最重要的一点(我经常忘记的)就是要在settings.py
中禁用掉静态文件收集功能:
INSTALLED_APPS = (
...
# 'django.contrib.staticfiles', # 禁用静态文件自动发现
...
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'myproject', 'static')