我有一个项目已经运行了大约6个月。静态文件一直运行良好,一切都很棒。我的static
文件位于文件夹中,如下所示:
/var/www/html/static/
在我的settings.py
文件中,我的静态部分设置如下:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
'/var/www/html/static/',
)
这一直很好用。
但是,我现在想将static
文件夹移动到其他位置。具体来说,我想将它移动到主项目目录中。我的项目位于/var/www/html/shq/
,因此我希望我的static
目录位于/var/www/html/shq/static/
。我移动了文件夹,然后更新了我的settings.py
文件,如下所示:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
'/var/www/html/shq/static/',
)
然而,它没有用。 Django项目仍然引用旧位置。
我在这里缺少什么?为什么Django项目不使用/var/www/html/shq/static/
的新位置?
修改
这就是settings.py
文件的尾端:
119 STATICFILES_FINDERS = [
120 'django.contrib.staticfiles.finders.FileSystemFinder',
121 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
122 ]
123
124 STATIC_URL = '/static/'
125 STATIC_ROOT = '/var/www/html/collected_static/'
126 MEDIA_URL = '/media/'
127 MEDIA_ROOT = '/var/www/html/shq/media/'
128 STATICFILES_DIRS = [
129 os.path.join(BASE_DIR, "static"),
130 '/var/www/html/shq/static/',
131 ]
答案 0 :(得分:0)
你可能会尝试做这样的事情。我认为它返回django寻找静态文件的目录列表。可能有助于调试。
<ion-checkbox ng-disabled="myBooleanValue"
ng-repeat="va in q.ValidAnswers | orderBy:'SortOrder'"
ng-click="myBooleanValue || vm.setAnswer(q.ID, va.AnswerID)"
ng-checked="vm.isChecked(currentAnswers, va.AnswerID)">
{{va.Text}}
</ion-checkbox>
另外,我可能不完全了解您的方案,但您可能确认STATIC_ROOT设置为您要为静态文件提供服务的位置(您的Web服务器将为文件提供服务)。 STATIC_DIRS设置告诉collectstatic在哪里找到静态文件,但是STATIC_ROOT是collectstatic实际放置文件的地方。
答案 1 :(得分:0)
我明白了。毫不奇怪,一旦我弄清楚这是一个简单的解决方案。
它没有没有来处理我的Django设置以及与Apache有关的一切。
<强>原始强>
Alias /static/ /var/www/html/static/
所以无论我在Django settings.py
文件中做了什么,Apache都要求将/static/
请求发送到错误的目录。
新的Apache设置
Alias /static/ /var/www/html/shq/static/
现在正在引用正确的静态文件。希望这有助于未来的其他人:)