我是码头工人的新手。我被分配了一个使用 Docker 容器进行开发的任务。我按照在 Windows 10 上安装 Docker 和容器的教程进行操作,但出现以下错误:network remaxmdcrm_remaxmd-network declared as external, but could not be found
到目前为止我已经完成的步骤是:
docker-compose build -d -t docker-compose.yml- docker-compose.yml 是根目录中的文件。docker-compose up。当我运行此命令时,出现我在开头指定的错误。network remaxmdcrm_remaxmd-network declared as external, but could not be founddocker-compose.yml
services:
ui:
build:
context: .
dockerfile: Dockerfile.development
volumes:
- .:/app
ports:
- "5000:5000"
restart: unless-stopped
networks:
- remaxmdcrm_remaxmd-network
redis:
image: 'redis:alpine'
networks:
- remaxmdcrm_remaxmd-network
networks:
remaxmdcrm_remaxmd-network:
external: …Run Code Online (Sandbox Code Playgroud) 我是 JavaScript 的初学者,我正在尝试编写一个脚本来检查网站是否https://example.com返回 404 状态代码或 200,并根据结果,我将访问它或不访问它。我正在前端执行此操作。我没有服务器端,因为该网站是静态网站,不使用数据库。我正在使用 XMLHttpRequest 执行此操作。
url = $("#foo").attr("href")
function UrlExists(ur)
{
var http = new XMLHttpRequest();
http.open('GET', ur, true);
http.setRequestHeader("Access-Control-Allow-Origin", "http, https");
http.setRequestHeader("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTONS");
http.setRequestHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
http.send();
console.log(http.status);
}
UrlExists(url)
Run Code Online (Sandbox Code Playgroud)
问题是当我运行此脚本时,抛出以下异常:
CORS 策略已阻止从源“null”访问 XMLHttpRequest 'http://example.com':对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
从我到目前为止读到的内容来看,这更像是 CORS 问题而不是 JavaScript,而且到目前为止我还找不到解决方案。
有人可以帮助我解决这个问题并解释为什么吗?我已经检查了有关 SO 的其他问题,到目前为止,我没有找到可行的解决方案。如果有的话,我也愿意接受其他解决方案。太感谢了!
我非常感谢您的宝贵时间!
更新1: 不幸的是,我仍在为这个问题而苦苦挣扎。我已经阅读了很多有关 CORS 策略的内容,问题是我不知道应该如何安全地允许标头通过请求从我的服务器发送到另一台服务器。资源是:一个 HTML 页面和其中的一些 JS 代码。正如我上面提到的,我试图从我的网站向另一个网站发送请求以检查该网站的状态,如果弹出 404,我想重定向我的用户。
我正在尝试配置本地记录器以将日志写入 docker 容器,这样我就可以在命令显示的列表中看到日志docker[-compose] logs <container> --tail 100
在 中settings.py,我配置了LOGGING这样的变量:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '[DJANGO] %(levelname)s %(asctime)s %(module)s '
'%(name)s.%(funcName)s:%(lineno)s: %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'default',
}
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
}
},
}
Run Code Online (Sandbox Code Playgroud)
在我需要记录器的文件中,一开始我写的是:
import logging
logger = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)
然后,在我需要的代码中编写:
.......
logger.error('something happened')
.......
Run Code Online (Sandbox Code Playgroud)
当我配置记录器时,日志将显示在控制台中。但我的问题是:
当我调用上述命令时,如何在 docker 容器中显示它?
所需输出的示例:
........
web_1 | [2022-02-23 …Run Code Online (Sandbox Code Playgroud) 在使用 Django 框架创建我的第一个网站的过程中,我遇到了一个小问题,目前还没有找到解决方案。因此,当用户想要重置他或她的密码时,我想向他/她发送一封重置邮件。到目前为止,我有这个:
urls.py
from django.contrib.auth import views as auth_views
......
path('password-reset/', auth_views.PasswordResetView.as_view(template_name='registration/password_reset_form.html'),
name='password_reset'),
path('password-reset-confirm/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(template_name='registration/password_reset_confirm.html'),
name='password_reset_confirm'),
path('password-reset/done/',
auth_views.PasswordResetDoneView.as_view(template_name='registration/password_reset_done.html'),
name='password_reset_done'),
path('password-reset-complete/',
auth_views.PasswordResetCompleteView.as_view(template_name='registration/password_reset_complete.html')),
....
Run Code Online (Sandbox Code Playgroud)
设置.py
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_POST = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('traces_email')
EMAIL_HOST_PASSWORD = os.environ.get('traces_email_password')
Run Code Online (Sandbox Code Playgroud)
我为我的链接创建了一个令牌生成器:token_generator.py
from django.contrib.auth.tokens import PasswordResetTokenGenerator
import six
class TokenGenerator(PasswordResetTokenGenerator):
def _make_hash_value(self, user, timestamp):
return (
six.text_type(user.pk) + six.text_type(timestamp) + six.text_type(user.is_active)
)
account_activation_token = TokenGenerator()
Run Code Online (Sandbox Code Playgroud)
当我执行重置流程时,它不会发送任何电子邮件。它仍然发送到我的终端。有人可以帮我解决这个问题吗?非常感谢您的参与!
django ×2
docker ×2
cors ×1
django-forms ×1
django-views ×1
dockerfile ×1
gmail ×1
javascript ×1
python ×1