Python 链接Django中的静态文件目录
我有多个静态文件目录。每个应用程序都有自己的静态文件目录,使其模块化。如何访问所有应用程序的静态文件目录。最初我把所有静态文件放在一个文件夹下。现在我将静态文件保存在应用程序中,然后想从应用程序中访问它。如何更改我的Python 链接Django中的静态文件目录,python,css,django,twitter-bootstrap,Python,Css,Django,Twitter Bootstrap,我有多个静态文件目录。每个应用程序都有自己的静态文件目录,使其模块化。如何访问所有应用程序的静态文件目录。最初我把所有静态文件放在一个文件夹下。现在我将静态文件保存在应用程序中,然后想从应用程序中访问它。如何更改我的settings.py文件以访问静态目录 这是我的目录结构 |-- assets // static folder named as 'assets' | |-- css | | |-- bootstrap.css | |
settings.py
文件以访问静态目录
这是我的目录结构
|-- assets // static folder named as 'assets'
| |-- css
| | |-- bootstrap.css
| | |-- bootstrap.min.css
| | |-- bootstrap-responsive.css
| | |-- bootstrap-responsive.min.css
| | `-- login.css
| |-- img
| | |-- glyphicons-halflings.png
| | `-- glyphicons-halflings-white.png
| `-- js
| |-- bootstrap.js
| |-- bootstrap.min.js
| `-- jquery-1.9.1.min.js
|-- initial // My Project Name
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- wsgi.py
| `-- wsgi.pyc
|-- manage.py
|-- models.py
|-- modules //apps folder named as 'modules'
| |-- dashboard
| | |-- __init__.py
| | |-- __init__.pyc
| | |-- models.py
| | |-- models.pyc
| | |-- static // static folder inside the dashboard app.
| | | |-- css
| | | |-- img
| | | `-- js
| | | `-- dashboard.js
| | |-- templates // template folder inside the dashboard app.
| | | `-- dashboard
| | | `-- dashboard.html
| | |-- tests.py
| | |-- urls.py
| | |-- urls.pyc
| | |-- views.py
| | `-- views.pyc
| |-- login // login app
| | |-- forms.py
| | |-- forms.pyc
| | |-- __init__.py
| | |-- __init__.pyc
| | |-- models.py
| | |-- models.pyc
| | |-- static
| | | |-- css
| | | | `-- login.css
| | | |-- img
| | | `-- js
| | |-- templates
| | | |-- auth
| | | | |-- login.html
| | | | |-- logout.html
| | | | `-- register.html
| | | `-- registration
| | | `-- login.html
| | |-- tests.py
| | |-- urls.py
| | |-- urls.pyc
| | |-- views.py
| | `-- views.pyc
|
`-- templates // templates folder for base templates.
|-- base1.html
|-- base2.html
`-- registration
`-- login.html
这是我的设置.py文件,当时所有静态文件都在一个文件夹下
MEDIA_ROOT = os.path.normpath( os.path.join(os.path.dirname(__file__), '../assets/'))
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/assets/'
这是我的设置.py文件,当时所有静态文件都在各自的模块/应用程序下
MEDIA_ROOT = (
os.path.normpath( os.path.join(os.path.dirname(__file__), '../assets/')),
os.path.normpath( os.path.join(os.path.dirname(__file__), '../modules/dashboard/static/')),
os.path.normpath( os.path.join(os.path.dirname(__file__), '../modules/login/static/')),
)
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/assets/'
您应该遵循以下步骤(从文档中): 最重要的部分是: 将静态文件存储在应用程序中名为static的文件夹中。例如my_app/static/my_app/myimage.jpg
因此,使用静态文件应用程序将名称从资产更改为静态文件将帮助您解决此问题。-媒体用于用户上传,静态用于静态文件。。(由生产网站中的collectstatic命令收集,以便您的服务器可以为其提供服务)如果您想命名it资产,这很好,但会导致一些额外的配置(约定为“静态”),以供进一步参考:我为什么要将其更改为
静态
?它有什么相关性吗?@user1162512因为这就是django.contrib.staticfiles
的工作原理。它将在每个应用程序的子文件夹/static
中搜索静态文件。它将省略其他文件夹。更具体地说,django.contrib.staticfiles.finders.AppDirectoriesFinder
就是这样工作的。如果您想进行自定义操作,可以在“设置”中创建自己的STATICFILES\u FINDER
。两个默认查找程序将搜索每个已安装应用程序中的显式位置(STATICFILES\u DIRS
),或在/static/
下。还请记住,url路径将是/STATIC之后的STATIC\u url
+文件路径。虽然我已经获得了所需的o/p,但我可以从中间省略myapp
文件夹。我试着移除它,但效果不一样。有什么具体的原因吗?