我不知道为什么在Django的管理页面中更改了静态文件的URL。 我的模型类如下
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 Administration页面点击静态文件链接时(见下面的屏幕截图)我找不到404.(见下面的截图)
原因是请求的网址不是我上传的网址。我不知道为什么Django管理中的url链接发生了变化。实际上,当我手动输入网址时,我可以获取静态文件。
答案 0 :(得分:0)
对于本地测试和使用,需要进行以下更新:
urls.py:
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)
并在设置文件中添加如下内容:
# 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',
)
答案 1 :(得分:0)
STATIC_URL
需要是绝对路径:即它必须以斜线开头。您可能已将其设置为static/
:它必须为/static/
。