社区所有版块导航
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 js,css静态文件问题(第一次发帖,求照顾)

可爱slider-weibo • 10 年前 • 11777 次点击  

小弟新手,html中引入css报错

{% extends 'web/base.html' %}
{% block js %}
    {% load staticfiles %}
            <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}blog/style.css" />
{#            <script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.8.3.min.js"></script>#}
{% endblock %}

setting部分内容如下:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = '/static/'

# add by slider
TEMPLATE_DIRS = (
    os.path.abspath(os.path.join(BASE_DIR, 'templates')),
)

MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = "/static/"
TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced',
    'theme_advanced_toolbar_location' : 'top',
    'theme_advanced_toolbar_align' : 'left',
    'width': 600,
    'height': 400,
}

报错信息如下:

[13/Dec/2014 09:32:56] "GET /blog/ HTTP/1.1" 200 1208
[13/Dec/2014 09:32:56] "GET /blog/style.css HTTP/1.1" 404 2585
[13/Dec/2014 09:32:56] "GET /static/blog/style.css HTTP/1.1" 404 1646
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/836
 
11777 次点击  
文章 [ 9 ]  |  最新文章 9 年前
走遍北京的德福小猪-weibo
Reply   •   1 楼
走遍北京的德福小猪-weibo    9 年前

也可以这样写:

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

olivetree
Reply   •   2 楼
olivetree    9 年前

好像是这样 {{static blog/style.css}}

可爱slider-weibo
Reply   •   3 楼
可爱slider-weibo    9 年前

问题解决了 。

environment: django1.6 python2.7 mac
1.base setting:
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = "/static/"

2.remove "django.contrib.staticfiles" in INSTALL_APPS

3.ADD THIS FOLLOWING CODE IN PROJECT URLS.PY FILE.
from django.conf import settings
if settings.DEBUG:
   urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }),
        url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}), )


4. YOU COULD USE STATIC FILE IN HTML FILE LIKE THIS:
<link rel="stylesheet" type="text/css" href="/static/blog/style.css" />
Ziv_Luther-weibo
Reply   •   4 楼
Ziv_Luther-weibo    9 年前

https://docs.djangoproject.com/en/1.6/howto/static-files/ 这个链接里面的说明 你看不明白吗? 至少你可以这么做。 setting.py 里面加上。 STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder',

'django.contrib.staticfiles.finders.DefaultStorageFinder',

) 还可以设上 STATICFILES_DIRS = ( "a", ) INSTALLED_APPS 里面要有 'django.contrib.staticfiles', 如果不想用这个,就得用其他方法。

然后在a这个目录下放你想放的文件是可以找到的。

这是因为你的 /static/blog/style.css 这个问题放错位置了。

你可以找一个APP 文件夹,在里面创建一个static 目录,放style.css

加入你的APP 叫 blog, 那么 blog/static/style.css 这个文件可以通过 /static/style.css 访问。 上限的时候,使用collectstatic 可以把所有APP 下面的static 文件夹里面的文件收集到一起。

云吞团团长-weibo
Reply   •   5 楼
云吞团团长-weibo    9 年前

STATIC_ROOT 是collectstatic时存放的目标文件夹(一般是在产品环境,静态资源由web server而不是django来serve),开发环境的话需要设置一下STATICFILES_DIRS (以及STATICFILES_DIRS 不能包含STATIC_ROOT )

爱情的枪
Reply   •   6 楼
爱情的枪    9 年前

我估计是目录设置有问题

可爱slider-weibo
Reply   •   7 楼
可爱slider-weibo    10 年前

看的不是很明白,有大神指导下吗?

可爱slider-weibo
Reply   •   8 楼
可爱slider-weibo    10 年前

@livevilwt 我这个是1.6的。 好像有点不一样

livevilwt
Reply   •   9 楼
livevilwt    10 年前