gpt4 book ai didi

django - Apache 不提供来自 Django 应用程序的静态文件

转载 作者:行者123 更新时间:2023-12-04 21:41:59 26 4
gpt4 key购买 nike

我不知道我的 django 项目的虚拟主机出了什么问题,但简单的问题是无论我对此文件做了什么修改,仍然会在来自 apache 的错误日志中输出相同的内容,并且不加载任何 css 或 js 文件,我能看到的是Apache 正在 Web 根文件夹中查找静态和媒体文件:/var/www

[Fri May 30 00:58:08 2014] [error] [client 192.168.1.145] File does not exist: /var/www/static, referer: http://192.168.1.143/dgp/login/

我设置虚拟主机文件如下:
  WSGIPythonPath /var/www/dgp_python2_7/bin/python2.7:/var/www/dgp_python2_7/lib/python2.7/site-packages
WSGIScriptAlias /dgp /var/www/dgp/dgp/dgp/wsgi.py

<VirtualHost 127.0.0.1:80>
ServerName www.dgp.dev
ServerAlias dgp.dev


AliasMatch ^/([^/]*\.css) /var/www/dgp/dgp/static/$1

Alias /media/ /var/www/dgp/dgp/media/
Alias /static/ /var/www/dgp/dgp/static/
Alias /images/ /var/www/dgp/dgp/images/

<Directory /var/www/dgp/dgp/static/>
Order deny,allow
Allow from all
</Directory>

<Directory /var/www/dgp/dgp/media/>
Order deny,allow
Allow from all
</Directory>

ErrorLog /var/www/dgp/dgp/error.log
CustomLog /var/www/dgp/dgp/access.log combined
</VirtualHost>

在 settings.py STATIC_ROOT'/var/www/dgp/dgp/static/' 中,所有 css 内容都在其中。

如何告诉 apache 或 Django 寻找正确的目录 '/var/www/dgp/dgp/static/' ?这让我发疯,我不明白开发中如此基本的东西对生产来说如此复杂。

问候!

使用解决方案 进行编辑

真正的问题是我没有禁用 Debian Apache(这是我正在使用的版本)的默认站点,并且有另一种建立虚拟主机的方法,一开始我们必须使用以下命令禁用默认站点: a2dissite default 和现在一切都像魅力一样!

最佳答案

您可以知道在您的项目呈现的 html 中在哪里查找您的静态文件。只需在浏览器中查看源代码并查找样式表或 javascript 包含,文件的完整路径是什么?

我的猜测是,您必须运行 Django 的 collect static 脚本,它将收集您项目的所有应用程序中的所有静态脚本并将它们放在一个位置。这是部署 Django 项目的核心部分,如果您在项目中使用多个“应用程序”,这是不可避免的。

在您的终端中,转到 Django 项目根文件夹并键入以下内容:

python manage.py collectstatic

阅读更多 https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/

关于django - Apache 不提供来自 Django 应用程序的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23944576/

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