请考虑我的情况:我有一个http到https的问题。我刚刚将我的next.js应用程序成功部署到vercel.com,该应用程序将其从http更改为https。然后,添加域名后,我在网络浏览器中检查了新部署的应用程序,并成功加载了该应用程序。但是,当我尝试登录时未成功。这是必须解决的。
EXPRESS.JS: (自签名证书!) (由于stackoverflow过滤器,https后有意留出空格):
// server.js
var fs = require('fs')
var https = require('https')
const cors = require('cors');
if (process.env.NODE_ENV === 'development') {
app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}
https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')
}, app)
.listen(443, function () {
console.log('Listening on port 443!')
})
NEXT.JS: (由于stackoverflow过滤器,https后有意留出空间)
// next.config.js:
module.exports = {
publicRuntimeConfig: {
APP_NAME: 'mydomain.com',
API_PRODUCTION: 'http://123.45.67.89:443/api',
API_DEVELOPMENT: 'http://123.45.67.89:443/api',
PRODUCTION: false,
DOMAIN_PRODUCTION: 'https ://mydomain.com',
DOMAIN_DEVELOPMENT: 'http://123.45.67.89:80',
}
};
config.js
import getConfig from 'next/config';
const { publicRuntimeConfig } = getConfig();
export const API = publicRuntimeConfig.PRODUCTION
? publicRuntimeConfig.API_PRODUCTION
: publicRuntimeConfig.API_DEVELOPMENT;
export const APP_NAME = publicRuntimeConfig.APP_NAME;
export const DOMAIN = publicRuntimeConfig.PRODUCTION
? publicRuntimeConfig.DOMAIN_PRODUCTION
: publicRuntimeConfig.DOMAIN_DEVELOPMENT;
此外,我已将域注册商的名称服务器更新为Vercel。
在Vercel上投入生产版本上线后,该站点将显示并单击静态的东西:单击联系人,注册页面,登录页面。但是,如果我尝试登录,则每次都会失败。当我检查开发人员工具时,它表明请求仍在发送给IP。
如果我尝试邮递员,则只有http://123.45.67.89:443/api/signin
有效,而mydomain.com/api
则无效。
我可能会做错什么人?
在开发中,从前端到后端的所有通信都完美运行!现在不再互相交谈,因为当我尝试登录时,morgan没有显示任何内容。