Django中配置静态文件路径

本文介绍了如何在Django项目中配置静态文件上传功能。通过修改settings.py文件中的静态文件路径,包括STATIC_ROOT和STATIC_URL等,并在urls.py中添加相应的URL映射,实现了文件上传至指定目录的功能。

选择了最近一直在看的Django作为我的Android Demo的server端,今天想要实现一个Android下上传文件到服务器的功能,于是想了想,暂时可以先放到静态文件目录下,然后就把自己配置静态文件目录的过程记录一下。

首先打开你的项目下的settings.py文件,在其中加入或修改如下代码:

# 设置一个路径变量
APP_PATH=os.path.dirname(os.path.dirname(__file__))
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# 注意要修改STATIC_ROOT变量
STATIC_ROOT = os.path.join(APP_PATH,'static').replace('\\','/')

# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'

# 当然还有STATICFILES_DIRS变量
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.
    os.path.join(APP_PATH,'mobile_oa_server/static').replace('\\','/'),
)
然后在你的项目下的urls.py文件中加入如下代码:

# 导入static和settings
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = patterns('',
	# 这里是你原先的urlpatterns的值,记住一定要在urlpatterns的下方,追加static
)
urlpatterns+=static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)

OK,完成了上述步骤之后,我们可以在我们的app目录下创建一个static文件夹,然后扔一张照片啥的进去,为了检测是否成功:效果如下(随便找了张图作测试)


夜已深,收拾完这个小东西就准备睡觉去了,明天又是要奋斗的一天,大家加油!

2013年11月17日,Eric.Tang 记


### 静态文件路径配置Django配置静态文件路径,需要确保 `settings.py` 文件中设置了 `STATIC_URL` 和 `STATIC_ROOT`,以便 Django 能够识别和收集静态文件。`STATIC_URL` 是静态文件的 URL 路径,默认情况下设置为 `/static/`,表示静态文件的访问路径为 `/static/` [^1]。 ```python import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent # 静态文件URL路径 STATIC_URL = '/static/' # 静态文件存储目录 STATIC_ROOT = os.path.join(BASE_DIR, 'static') ``` 如果希望 Django 在开发环境中也能正确加载静态文件,则需要配置 `STATICFILES_DIRS`,指定额外的静态文件查找路径。例如,可以将静态文件统一存放在项目根目录下的 `static` 文件夹中,并将其添加到 `STATICFILES_DIRS` 中: ```python STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) ``` 这样,Django 会从 `STATICFILES_DIRS` 指定的目录中查找静态文件,并通过 `collectstatic` 命令将其复制到 `STATIC_ROOT` 目录中 [^3]。 执行 `collectstatic` 命令后,Django 会将所有应用的静态文件集中到 `STATIC_ROOT` 指定的目录中,确保在生产环境中能够被正确访问: ```bash python manage.py collectstatic ``` 在 Nginx 环境下,还需要配置静态文件的访问路径,确保 Nginx 能够正确地提供静态资源服务。通常,需要在 Nginx 的配置文件中添加 `location /static` 块,并使用 `alias` 指向 `STATIC_ROOT` 所在的目录: ```nginx location /static { alias /path/to/your/static; } ``` 完成上述配置后,重新加载 Nginx 配置以确保更改生效: ```bash sudo nginx -s reload ``` 通过以上配置Django 应用在开发和生产环境中都能正确识别和加载静态文件。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值