- 论坛徽章:
- 0
|
误打误撞的解决了问题,愿意只是想引入自己的CSS文件,没想到顺道解决了之前的问题,详情如下:
先从我自己的说起,我想在html模板中引入自己的css,按原先在写html时候的思路来,绝对路径相对路径试了好几次,没用。
然后在官网上找到了解决方案:
只需要修改settings.py和要引入css的html文件即可
html文件比较简单,先说html的修改,格式如下
4 {% load staticfiles %}
5 <link href="{% static "contact/css/contact_form.css" %}" rel="stylesheet" type="text/css" />
再说settings.py:
89 # Static files (CSS, JavaScript, Images)
90 # https://docs.djangoproject.com/en/1.6/howto/static-files/
91
92 STATIC_URL = '/static/'
93
94 STATICFILES_FINDERS = (
95 "django.contrib.staticfiles.finders.FileSystemFinder",
96 "django.contrib.staticfiles.finders.AppDirectoriesFinder",
97 )
98
99 STATICFILES_DIRS = (
100 #os.path.join(BASE_DIR, "static"),
101 '/var/www/witweb/contact/static/',
102 )
103
104 STATIC_ROOT = "/var/www/witweb/static/"
这是我的目录结构:
请重点关注contact和static两个文件夹。
.
|-- books
| |-- admin.py
| |-- admin.pyc
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- templates
| | |-- list.html
| | |-- print_request.html
| | |-- search_form.html
| | `-- search_results.html
| |-- tests.py
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| |-- views.pyc
| `-- :w
|-- contact
| |-- admin.py
| |-- admin.pyc
| |-- forms.py
| |-- forms.pyc
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- static
| | `-- contact
| | `-- css
| | `-- contact_form.css
| |-- templates
| | |-- contact_form.html
| | `-- thanks.html
| |-- tests.py
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| `-- views.pyc
|-- course
| |-- admin.py
| |-- admin.pyc
| |-- __init__.py
| |-- __init__.pyc
| |-- models.py
| |-- models.pyc
| |-- templates
| | |-- dateapp
| | | |-- current_datetime.html
| | | `-- nav.html
| | |-- dateapp2
| | | |-- base.html
| | | |-- current_datetime.html
| | | `-- hours_ahead.html
| | |-- includes
| | | `-- nav.html
| | `-- mypage.html
| |-- tests.py
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| `-- views.pyc
|-- manage.py
|-- static
`-- witweb
|-- __init__.py
|-- __init__.pyc
|-- my.cnf
|-- settings.py
|-- settings.pyc
|-- urls.py
|-- urls.pyc
|-- views.py
|-- views.pyc
|-- wsgi.py
`-- wsgi.pyc
运行python manage.py collectstatic, 然后再看static文件夹
static/
|-- admin
| |-- css
| | |-- base.css
| | |-- changelists.css
| | |-- dashboard.css
| | |-- forms.css
| | |-- ie.css
| | |-- login.css
| | |-- rtl.css
| | `-- widgets.css
| |-- img
| | |-- changelist-bg.gif
| | |-- changelist-bg_rtl.gif
| | |-- chooser-bg.gif
| | |-- chooser_stacked-bg.gif
| | |-- default-bg.gif
| | |-- default-bg-reverse.gif
| | |-- deleted-overlay.gif
| | |-- gis
| | | |-- move_vertex_off.png
| | | `-- move_vertex_on.png
| | |-- icon_addlink.gif
| | |-- icon_alert.gif
| | |-- icon_calendar.gif
| | |-- icon_changelink.gif
| | |-- icon_clock.gif
| | |-- icon_deletelink.gif
| | |-- icon_error.gif
| | |-- icon-no.gif
| | |-- icon_searchbox.png
| | |-- icon_success.gif
| | |-- icon-unknown.gif
| | |-- icon-yes.gif
| | |-- inline-delete-8bit.png
| | |-- inline-delete.png
| | |-- inline-restore-8bit.png
| | |-- inline-restore.png
| | |-- inline-splitter-bg.gif
| | |-- nav-bg.gif
| | |-- nav-bg-grabber.gif
| | |-- nav-bg-reverse.gif
| | |-- nav-bg-selected.gif
| | |-- selector-icons.gif
| | |-- selector-search.gif
| | |-- sorting-icons.gif
| | |-- tool-left.gif
| | |-- tool-left_over.gif
| | |-- tool-right.gif
| | |-- tool-right_over.gif
| | |-- tooltag-add.gif
| | |-- tooltag-add_over.gif
| | |-- tooltag-arrowright.gif
| | `-- tooltag-arrowright_over.gif
| `-- js
| |-- actions.js
| |-- actions.min.js
| |-- admin
| | |-- DateTimeShortcuts.js
| | `-- RelatedObjectLookups.js
| |-- calendar.js
| |-- collapse.js
| |-- collapse.min.js
| |-- core.js
| |-- inlines.js
| |-- inlines.min.js
| |-- jquery.init.js
| |-- jquery.js
| |-- jquery.min.js
| |-- LICENSE-JQUERY.txt
| |-- prepopulate.js
| |-- prepopulate.min.js
| |-- SelectBox.js
| |-- SelectFilter2.js
| |-- timeparse.js
| `-- urlify.js
`-- contact
`-- css
`-- contact_form.css
这么多行只有最后一行是我想要的,然后重启apache,搞定。
但static里面的admin是什么的,这得从collectstatic这条命令说起。
当运行Python manage.py collectstatic的时候,系统会根据settings.py中STATICFILES_FINDERS中的顺序把staticfiles都拷贝到STATIC_ROOT中去,STATICFILES_DIRS中指定FileSytemFinder搜索目录,AppDirectoriesFinder会按INSTALLED_APPs中的信息搜索。整个过程真的是拷贝,你在里面放.py的文件他都给你拷贝过来。
这是我的INSTALLED_APPS:
32 INSTALLED_APPS = (
33 'django.contrib.admin',
34 'django.contrib.auth',
35 'django.contrib.contenttypes',
36 'django.contrib.sessions',
37 'django.contrib.messages',
38 'django.contrib.staticfiles',
39 #'django.contrib.sites',
40 'django.contrib.admindocs',
41 'course',
42 'books',
43 'contact',
44 )
所以admin也在里面。
然后我尝试了下admin界面,可以了。
官方文档中多次提到类似于这样的话:This is not suitable for production use.
但我没出现unsuitable的情况啊,但总觉得是个隐患,还得进一步研究。 |
|