我希望能够在我的本地服务器上加载静态文件,但是当我请求它们时,浏览器会为每个资源返回404。
据我所知,STATIC_URL
是我的静态文件将被提供的网址。 STATICFILES_FINDERS
指定了我的静态文件的发现方式。我设置STATICFILES_DIRS
来搜索项目根目录下的static
目录,但它似乎没有找到它。
在我的settings.py
上,
# Python 2.7.5, Django 1.6
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
这是我的目录结构:
.
|-- myapp
|-- settings.py
|-- ...
static
|-- images
|-- javascript
|-- stylesheets
答案 0 :(得分:1)
以下是一些想法:
您的静态文件需要一台服务器。您使用的是Apache HTTP服务器吗?提供静态文件的最简单方法是在httpd.conf
文件中对它们进行别名:
Alias /static/ /path/to/static/
<Directory /path/to/static>
Require all granted
</Directory>
您需要指定一个STATIC_ROOT
,可能是/path/to/your_project/static
但是您可能希望将当前的静态文件和文件夹放在其他位置,因为STATIC_ROOT
中的所有内容都将致电manage.py collectstatic
时会被覆盖。我将所有静态文件(例如Bootstrap,Tablesorter,图像和图标)放在名为assets
的文件夹中,然后将assets
放入我的STATICFILES_DIR
列表中。
manage.py collectstatic
收集所有静态文件并将它们放在STATIC_ROOT
中,以便Apache可以找到它们。即使您不将其添加到STATICFILES_DIR
列表中,管理网站的静态文件也会自动复制。查看我写的post,其中有关于该主题的Django文档的几个链接。