Py学习  »  问与答

[精华] 请教一下django一直读取不了静态文件的问题

往事如翔飞机王-weibo • 11 年前 • 19000 次点击  

各位好,我要为django添加bootstrap,但是发现打开网页时总是显示:
"GET /home/cjyfff/simple_blog/code/static/css/bootstrap.css HTTP/1.1" 404 1713
这个css文件的路径是正确的,而且bootstrap.css已经设为所有用户都可读。 下面是我的settings.py中的设置:
STATIC_URL = '/home/cjyfff/simple_blog/code/static/'
请各位看看问题出自哪里?谢谢! django的版本是1.6

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/437
 
19000 次点击  
文章 [ 8 ]  |  最新文章 11 年前
江湖人小猫
Reply   •   1 楼
江湖人小猫    11 年前

@lzjun567 您好,用这个方法的确可以在html中调用图片和CSS文件。但当我想要在CSS文件中调用一张图片的时候发现失败,求指点,谢谢

Py站长
Reply   •   2 楼
Py站长    11 年前

@memoryboxes-weibo 赞~

memoryboxes-weibo
Reply   •   3 楼
memoryboxes-weibo    11 年前

可以看下文档: https://docs.djangoproject.com/en/1.7/howto/static-files/

memoryboxes-weibo
Reply   •   4 楼
memoryboxes-weibo    11 年前

django 从1.3版本之后Media和static独立开了。 如果你要上传用户自定义的图片文件,默认回到MEIDA_ROOT下面,这时候你要配置MEIDA_URL和MEDIA_ROOT。

如果是debug模式的话,django的runserver会加载static及meida的,如果非debug模式,static和media要在nginx之类的的server里配置。

往事如翔飞机王-weibo
Reply   •   5 楼
往事如翔飞机王-weibo    11 年前

@往事如翔飞机王-weibo 图片无法显示的问题我自己也解决了,解决办法是把MEDIA_ROOT指向STATIC_URL中的一个子目录。django貌似在开发模式下只会显示STATIC_URL目录下的图片,其他目录下的图片一概不会显示

python培训_远程-weibo
Reply   •   6 楼
python培训_远程-weibo    11 年前

这个问题,static和templates 目录放在APP目录下

模板中这样写 <link href="/static/bootstrap/css/bootstrap.css" rel="stylesheet">

往事如翔飞机王-weibo
Reply   •   7 楼
往事如翔飞机王-weibo    11 年前

@lzjun567 问题解决了,非常感谢!另外还想请教一下我的上传图片同样也有这个问题,譬如我用admin上传了一个叫22.jpg的文件,在访问页面时会提示:
"GET /home/cjyfff/media/photos/22.jpg HTTP/1.1" 404 2934
我的settings.py设置为:
MEDIA_ROOT = '/home/cjyfff/media/'
models.py的代码如下:
class Photo(models.Model):
title = models.CharField(max_length=100)
image = models.ImageField(upload_to='photos')
tag = models.ManyToManyField(BlogPost, blank=True)
麻烦大牛再帮忙看看,感谢!!

lzjun567
Reply   •   8 楼
lzjun567    11 年前

你的配置有问题, 默认情况下django会在app目录下的static子目录查找静态资源.

你可以这样:

STATIC_URL = "/static"

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    '/home/cjyfff/simple_blog/code/static/',
)

模板中这样写:

{% load staticfiles %}
<script src="{% static "css/bootstrap.css" %}"></script>

参考:setting配置