0

我正在使用包“django-wysiwyg-redactor”作为管理应用程序中的博客条目界面。当管理站点加载时,包会为渲染富文本编辑器所需的 JavaScript 文件注入一些源 URL:

<script type="text/javascript" src="/static/redactor/jquery.min.js"></script>
<script type="text/javascript" src="/static/redactor/jquery-migrate.min.js"></script>
<script type="text/javascript" src="/static/redactor/redactor.min.js"></script>
...and so on...

我正在处理的项目是使用 Boto 后端来提供来自 S3 存储桶的文件。由 Django 注入以正确呈现管理页面的 URL,附加正确的 S3 数据以调用存储桶:

<script type="text/javascript" src="https://siteName.s3.amazonaws.com/admin/js/jquery.min.js?Signature=signatureKeyGoesHere&amp;Expires=1454163206&amp;AWSAccessKeyId=AWSAccessKeyIDGoesHere"></script>
<script type="text/javascript" src="https://siteName.s3.amazonaws.com/admin/js/jquery.init.js?Signature=signatureKeyGoesHere&amp;Expires=1454163206&amp;AWSAccessKeyId=AWSAccessKeyIDGoesHere"></script>
<script type="text/javascript" src="https://siteName.s3.amazonaws.com/admin/js/actions.min.js?Signature=signatureKeyGoesHere&amp;Expires=1454163206&amp;AWSAccessKeyId=AWSAccessKeyIDGoesHere"></script>

出于某种原因,Redactor URL 无法正确呈现 - 将调用所需的数据附加到 S3 存储桶。我在本地开发期间一切正常(同时仍在使用远程文件后端)

在我的第一次部署期间,我也一切正常。

就在今天晚上,我去搞乱开发分支站点 - 它具有与生产完全相同的代码库(在初始部署期间工作) - 并看到博客条目表单没有呈现。我检查了浏览器内的 javascript 控制台,发现了一些与 Redactor 使用的文件有关的资源加载失败消息:

Failed to load resource: the server responded with a status of 404 (Not Found) http://siteName.herokuapp.com/static/redactor/jquery.min.js
Failed to load resource: the server responded with a status of 404 (Not Found)    http://siteName.herokuapp.com/static/redactor/css/redactor.css
Failed to load resource: the server responded with a status of 404 (Not Found) http://siteName.herokuapp.com/static/redactor/css/django_admin.css
Failed to load resource: the server responded with a status of 404 (Not Found) http://siteName.herokuapp.com/static/redactor/jquery-migrate.min.js
Failed to load resource: the server responded with a status of 404 (Not Found) http://siteName.herokuapp.com/static/redactor/redactor.min.js

如您所见,这些 URL 的格式与上面列出的格式不同。

所有必要的文件确实存在于 S3 存储桶中。

我似乎无法弄清楚发生了什么。

任何帮助是极大的赞赏。

谢谢!

4

1 回答 1

0

确保您的 STATIC_URL 设置为使用您的存储桶位置。

STATIC_URL = "https://siteName.s3.amazonaws.com/"

另请参阅: 从 S3 提供 Django 的静态和媒体文件

通常,编辑器用户使用 Django Form Media 类。欲了解更多信息:https ://docs.djangoproject.com/en/dev/topics/forms/media/

于 2014-02-08T16:03:17.823 回答