首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django dev服务器间歇性地无法提供静态文件

Django dev服务器间歇性地无法提供静态文件
EN

Stack Overflow用户
提问于 2011-10-11 04:12:16
回答 3查看 805关注 0票数 14

在我的开发环境中,为静态文件(js脚本和css)提供服务时会间歇性地出现故障。在Chrome的error控制台中,我得到了404s。但是如果我刷新这些项目,或者直接访问URL,它们就会被很好地提供。

这很烦人。

示例:

代码语言:javascript
复制
GET http://127.0.0.1:8000/static/js/editor/xyz.js?v=1 404 (NOT FOUND)

但是如果我直接访问这个URL就没问题了。如果我刷新页面几次,它就会再次工作。

有什么想法吗?

Chrome 14.0.835.202

代码语言:javascript
复制
Django==1.3
Fabric==1.0.1
Jinja2==2.5.5
PIL==1.1.7
Pygments==1.3.1
South==0.7.3
Sphinx==1.0.5
boto==2.0
chunks==0.1
django-devserver==0.2.1
django-pagination==1.0.7
django-sorting==0.1
django-storages==1.1.3
docutils==0.8
gunicorn==0.12.1
ipython==0.10.1
paramiko==1.7.6
pep8==0.6.1
psycopg2==2.2.2
pycrypto==2.0.1
python-dateutil==1.5
python-memcached==1.45
wsgiref==0.1.2
EN

回答 3

Stack Overflow用户

发布于 2012-01-14 07:14:37

开发服务器是单线程的,所以如果有东西一直在等待,它就会阻塞每个请求。

我通常使用django concurent dev server,它是多线程的,并且工作得更好。此外,它非常快速且易于设置;)

票数 2
EN

Stack Overflow用户

发布于 2013-03-06 00:12:56

这可能取决于您的设置。你对静电做了什么?设置是什么?你做静电收集了吗?在case中试用this

但是,关于在开发中提供静态文件:

警告仅当DEBUG为True时才起作用。

这是因为这种视图是非常低效的,而且可能是不安全的。这仅适用于本地开发,不应用于生产。

来自here

你不能只在另一台服务器上提供静态文件吗?

票数 -1
EN

Stack Overflow用户

发布于 2013-06-14 20:52:42

在阅读了所有答案之后,如果仍然有人有这个问题,那么……根据Django的性质,你不需要做任何事情来服务静态文件,只需要你的设置文件有如下正确的配置:

代码语言:javascript
复制
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    # **THIS IS USED WHEN YOUR STATIC FILES ARE IN SOME OTHER FOLDER ALSO**

    # 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.

    FOLDER_NAME, 
)

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

INSTALLED_APPS = (
    # other apps
    'django.contrib.staticfiles',
)

但是如果你仍然面临问题,把这个放到你的urls.py

(r‘^(文件路径)$’,'django.views.static.serve‘,{'document_root':'PROJECT_ROOT_DIR’+“静态文件夹路径”}),

上面的URL将用于静态文件,无论它们是JS文件还是CSS或图像。

在生产服务器的情况下,您不需要这个。

然后运行:python manage.py collecstatic

希望这能有所帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7718110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档