首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django的静态文件相关问题

Django的静态文件相关问题
EN

Stack Overflow用户
提问于 2015-08-07 13:16:14
回答 2查看 45关注 0票数 0

我不知道为什么在Django的管理页面中静态文件的url会改变。我的模型类如下所示

代码语言:javascript
复制
class MW_test(models.Model):
    name = models.CharField(max_length=10)
    tst = models.CharField(max_length=5, null=True, blank=True)
    data = models.CharField(max_length=10, null=True, blank=True)
    img = models.FileField(upload_to='static/test_images')
    def __str__(self):
        return self.name

正如你在上面的代码中看到的,静态文件保存在static/test_images中。但是,当我点击Django管理页面的静态文件链接。(见下面的屏幕截图)我得到404找不到。(见下面的屏幕截图)原因是请求的url不是我上传的url。我不知道为什么Django管理中的url链接会改变。实际上,当我手动输入url时,我可以得到静态文件。

EN

回答 2

Stack Overflow用户

发布于 2015-08-07 15:00:35

对于本地测试和使用,需要进行以下更新:

urls.py:

代码语言:javascript
复制
from django.conf import settings
from django.conf.urls.static import static

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

并在设置文件中添加类似以下内容:

代码语言:javascript
复制
# https://docs.djangoproject.com/en/1.6/howto/static-files/
STATIC_ROOT_DIR = 'static-tmp'
STATIC_ROOT = normpath(join(BASE_DIR, STATIC_ROOT_DIR))
STATIC_URL = '/static/'

STATIC_DIR_BASE_PATH = join(BASE_DIR, "static")

STATICFILES_DIRS = (
    STATIC_DIR_BASE_PATH,
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
票数 0
EN

Stack Overflow用户

发布于 2015-08-07 16:29:18

STATIC_URL必须是绝对路径:即它必须以斜杠开头。您可能已经将其设置为static/:它需要为/static/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31870157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档