社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

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

往事如翔飞机王-weibo • 10 年前 • 18582 次点击  

各位好,我要为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
 
18582 次点击  
文章 [ 8 ]  |  最新文章 10 年前
江湖人小猫
Reply   •   1 楼
江湖人小猫    10 年前

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

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

@memoryboxes-weibo 赞~

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

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

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

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    10 年前

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

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

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

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

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

@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    10 年前

你的配置有问题, 默认情况下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配置