我有一个Django应用程序,当运行" manage.py runserver 0.0.0.0:80"工作正常,但是当由Apache2服务器运行时告诉我"没有这样的文件或目录"
我认为告诉Apache要查看哪条路径有什么关系,但我已经完成了显而易见的事情:
WSGIScriptAlias / /home/mywebsite/myproject/wsgi.py
WSGIPythonPath /home/mywebsite
<Directory /home/mywebsite/myapp>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
<Directory /home/mywebsite> //I thought this might give it access to the root folder
Order deny,allow
Require all granted
</Directory>
请注意我的文件位于项目的根目录中,位于manage.py旁边。该应用程序能够显示其首页,但由于上述文件错误,其中一个按钮触发的ajax失败。
我一定不知道如何指定文件路径。
访问该文件的代码就是:
with open('demo.txt') as fp:
etc...
重申一下,当我运行Django服务器时,它工作正常。 Apache运行主页就好了,只有在查找此文件时才会失败。
我需要改变什么?
答案 0 :(得分:1)
尝试使用文件的完整路径,或使用os模块获取相对路径。
答案 1 :(得分:1)
一种方法是在设置文件中设置项目路径:(如果它在项目根目录中)
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
from django.conf import settings
with open(os.path.join(settings.BASE_DIR, 'demo.txt')) as fp:
...
它将在您项目的所有安装中保持一致,您可以在本地调试BASE_DIR。