0

我已经走到了尽头……并计划开始深入研究 Django 源代码来解决这个问题。

我有一个通过启动项目以标准方式创建的 Django 应用程序。到目前为止,我一直在通过“ python manage.py runserver 8081”对其进行测试。

现在我正在尝试使用 mod_uwsgi 将它放在 Nginx 后面。

所以我使用这里的优秀说明对其进行了测试。

我的 ini 文件如下所示:

uwsgi]
chdir=<path_to_my_project>
module=<application>.wsgi:application
pidfile=/tmp/<pid_file_name>
max-requests=5000
daemonize=/var/log/uwsgi/<log_file_name>
env=DJANGO_SETTINGS_MODULE=<application>.settings
http-socket=127.0.0.1:50000

所以我使用以下方式启动应用程序:

uwsgi --ini uwsgi.ini

一切看起来都不错:

  1. 在“/var/log/uwsgi/”创建的日志文件:看起来不错。
  2. 目录已更改:看起来不错。日志文件表明如此。
  3. 模块已加载:假设它具有... 我在日志中没有看到任何错误消息。
  4. pidfile 已创建:看起来不错。我确实在文件中看到了正确的 PID 编号。通过 SIGINT 测试了进程的关闭。
  5. 在 http-socket 上收听:看起来不错。

问题: 当我通过http://site_url; 我在浏览器中获得了 HTML 页面。但是没有反映任何 CSS 样式。此外,我的 java-script 函数都没有被执行。所以不确定有什么问题。

仅供参考:我注意到日志中有以下几行:

[pid: 15730|app: 0|req: 7/7] 127.0.0.1 () {36 vars in 696 bytes} [Thu Apr 25 16:40:50 2013] GET / => generated 11774 bytes in 2 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 8/8] 127.0.0.1 () {36 vars in 710 bytes} [Thu Apr 25 16:40:50 2013] GET /static/jquery/jquery-1.9.1.min.js => generated 2874 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 9/9] 127.0.0.1 () {36 vars in 727 bytes} [Thu Apr 25 16:40:50 2013] GET /static/bootstrap/css/bootstrap.css => generated 2877 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 10/10] 127.0.0.1 () {36 vars in 716 bytes} [Thu Apr 25 16:40:50 2013] GET /static/bootstrap/js/bootstrap.min.js => generated 2883 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 11/11] 127.0.0.1 () {32 vars in 570 bytes} [Thu Apr 25 16:40:50 2013] GET /favicon.ico => generated 2808 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 12/12] 127.0.0.1 () {36 vars in 696 bytes} [Thu Apr 25 16:40:51 2013] GET / => generated 11774 bytes in 2 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 13/13] 127.0.0.1 () {36 vars in 710 bytes} [Thu Apr 25 16:40:51 2013] GET /static/jquery/jquery-1.9.1.min.js => generated 2874 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 14/14] 127.0.0.1 () {36 vars in 727 bytes} [Thu Apr 25 16:40:51 2013] GET /static/bootstrap/css/bootstrap.css => generated 2877 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 15/15] 127.0.0.1 () {36 vars in 716 bytes} [Thu Apr 25 16:40:51 2013] GET /static/bootstrap/js/bootstrap.min.js => generated 2883 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)
[pid: 15730|app: 0|req: 16/16] 127.0.0.1 () {32 vars in 570 bytes} [Thu Apr 25 16:40:51 2013] GET /favicon.ico => generated 2808 bytes in 3 msecs (HTTP/1.1 404) 1 headers in 51 bytes (1 switches on core 0)

是否有一些我似乎错过的额外配置?

非常感谢您的时间和投入。如果我找到一个解决方案,我会留下一个解决方案。

最好的...

4

2 回答 2

0

您可能需要查看 django 文档中关于提供静态文件的部分。mod_wsgi 的规则适用于 mod_uwsgi。一种更简单的方法是配置 uWSGI 以提供静态文件: http ://uwsgi-docs.readthedocs.org/en/latest/StaticFiles.html

如果您的网站加载良好,请检查有关卸载的部分

通常避免使用 django 来提供静态文件

于 2013-04-26T07:48:11.837 回答
-1

我没有使用 nginx,而是使用 Apache,正在运行mod_wsgi. 在那里我有可能使用

Alias /static/ /var/www/django-project/static/

所有文件都在我的目录中,并且可以在http://example.com/static/. 所以也许你可以对nginx做同样的事情。

编辑:这会跳过 wsgi/cgi/uwsgi 的过程,并允许 http 守护进程直接处理静态文件。python 不需要解析这些类型的请求——因为它们只访问静态文件。

于 2013-04-25T21:53:02.393 回答