gpt4 book ai didi

python - django 1.5.4 中的 STATIC_URL 问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:58 25 4
gpt4 key购买 nike

我想通过 django 1.5 内置开发服务器启用静态文件服务。我遇到了一个奇怪的问题。

如果我使用 localhost:8000/static/staticstyle.css 向我的静态文件发出请求,那么它会以 404 not found 来响应我。但是如果我向同一个文件发出请求而没有 STATIC_URL 中提到的值并将 url 模式添加为 "url(r'^anyval_other_than_mentioned_STATIC_URL/', django.views.static.serve ,{'document_setting':settings.STATIC_ROOT}), ",然后它用 304 响应我,这是有条件的。

我已经收集了设置文件中静态目录设置中的所有静态文件,并启用了模板所需的所有上下文处理器。

对于生产,我使用 nginx 来提供静态文件,所以没有问题。

我的 settings.py 看起来像

STATIC_ROOT = APPLICATION_PATH+"/static/"

STATIC_URL = '/static/'

STATICFILES_DIRS = (
('vendors',APPLICATION_PATH+'/vendors'),
('admin/assets/',APPLICATION_PATH+'/templates/admin/assets'),
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)

我的应用程序 urls.py 看起来像

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

如有任何提示,我们将不胜感激。

谢谢。

最佳答案

请先阅读此内容 https://docs.djangoproject.com/en/1.5/howto/static-files/

静态文件服务相关的一些设置知道如何在不同位置查找静态文件的查找器后端列表。

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

静态文件应该收集到的目录的绝对路径

STATIC_ROOT = os.path.join(APPLICATION_PATH, '..', 'static')

静态文件的 URL 前缀。

STATIC_URL = '/static/'

您可以指定静态文件的其他位置

STATICFILES_DIRS = (
os.path.join(APPLICATION_PATH, 'vendors'),
os.path.join(APPLICATION_PATH, '/templates/admin/assets'),
)

在django contrib中有static serve的特殊应用

INSTALLED_APPS = (
...
'django.contrib.staticfiles',
...
)

配置好项目后运行collectstatic命令

python manage.py collectstatic

这会将静态文件夹中的所有文件复制到 STATIC_ROOT 目录中。

关于python - django 1.5.4 中的 STATIC_URL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com