14

在我的开发环境中,我在提供静态文件(js 脚本和 css)时遇到间歇性故障。在 Chrome 的错误控制台中,我得到 404。但是,如果我刷新这些项目,或者直接访问 URL,它们就可以很好地提供。

这很烦人。

例子:

GET http://127.0.0.1:8000/static/js/editor/xyz.js?v=1 404 (NOT FOUND)

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

有任何想法吗?

铬 14.0.835.202

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
4

3 回答 3

2

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

我通常使用django 并发开发服务器,它是多线程的并且工作得更好。它也非常快速且易于设置;)

于 2012-01-13T23:14:36.703 回答
-1

这可能取决于您的设置。你为静电做了什么?有什么设置?你做了收集静态的吗?试试这个以防万一

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

警告 这仅在 DEBUG 为 True 时有效。

那是因为这种观点非常低效并且可能不安全。这仅用于本地开发,绝不能在生产中使用。

这里

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

于 2013-03-05T16:12:55.587 回答
-1

在阅读完所有答案后,如果仍然有人遇到此问题,那么...根据 Django 的性质,您不需要做任何事情来提供静态文件,只是您的设置文件应该具有正确的配置,如下所示:

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

希望这可以帮助。

于 2013-06-14T12:52:41.513 回答