Python Django:静态文件返回404错误
我希望能够在本地服务器上加载静态文件,但当我请求它们时,浏览器会为每个资源返回404 据我所知,Python Django:静态文件返回404错误,python,django,static,Python,Django,Static,我希望能够在本地服务器上加载静态文件,但当我请求它们时,浏览器会为每个资源返回404 据我所知,STATIC\u URL是提供静态文件的URL。和STATICFILES\u FINDERS指定如何查找静态文件。我将STATICFILES\u DIRS设置为在项目根目录下搜索static目录,但它似乎没有找到它 在mysettings.py上 # Python 2.7.5, Django 1.6 import os BASE_DIR = os.path.dirname(os.path.dirna
STATIC\u URL
是提供静态文件的URL。和STATICFILES\u FINDERS
指定如何查找静态文件。我将STATICFILES\u DIRS
设置为在项目根目录下搜索static
目录,但它似乎没有找到它
在mysettings.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
以下是一些想法:
httpd.conf
文件中对它们进行别名:
Alias /static/ /path/to/static/
<Directory /path/to/static>
Require all granted
</Directory>
Alias/static//path/to/static/
要求所有授权
STATIC\u ROOT
,它可以是/path/to/your\u project/STATIC
,但是您可能希望将当前的静态文件和文件夹放在其他地方,因为调用manage.py collectstatic
时,STATIC\u ROOT
中的所有内容都将被覆盖。我将所有静态文件(如引导、表排序器、图像和图标)放在名为assets
的文件夹中,然后将assets
放在我的STATICFILES\u DIR
列表中manage.py collectstatic
收集所有静态文件,并将它们放在static\u ROOT
中,以便Apache可以找到它们。管理员站点的静态文件将被自动复制,即使您没有将它们添加到静态文件\u DIR
列表中看看我写的这篇文章,它有几个链接指向关于这个主题的Django文档。当位于子URL时,Alias指令的尾随斜杠应该在参数上保持平衡。即使用“Alias/static/path/to/static”而不是“Alias/static//path/to/static”。如果没有,它可能会破坏Apache将URL映射到文件系统的方式,删除斜杠,计算路径出错。根据Apache配置,这可能导致未找到或禁止的HTTP错误响应。谢谢@GrahamDumpleton!我编辑了答案,以平衡URL和路径中的尾部斜杠。此特定示例来自,后面的斜线已正确平衡,如您所示。再次感谢!