我有一个vuejs应用程序,当我在localhost上运行vuejs应用程序时,这个应用程序调用nodejs中的rest请求,这个应用程序运行在本地主机上( nodejs应用程序运行在服务器上)。
当我在服务器上部署我的dist文件夹时,我看到了应用程序,显示很好,但是每个请求都返回以下消息:
我们很抱歉,如果没有启用JavaScript,Monthy回放就不能正常工作。请让它继续。-默认-noscript-错误
此消息com来自index.html (Vuejs)内的index.html noscript:
<noscript>
<strong>We're sorry but Monthy replay doesn't work properly without JavaScript enabled. Please
enable it to continue. --default-noscript-error</strong>
</noscript>我试着:
.htaccess
现在,我真的不知道我能尝试什么..。我不明白为什么vuejs应用程序能工作,但是在vuejs中,来自index.html内部noscript的消息导致请求失败。
更新,仍然不工作:
在vue.config.js中,如果我用一个哑uri来更改uri代理,我会看到同样的错误,所以在我认为的dist文件夹的生产中,有些事情不能像我期望的那样工作。
发布于 2022-09-03 08:20:07
问题就像我在主帖子的标签更新中说的那样,代理在开发中存在,但在生产中不存在!
因此,在使用axios.get(uri)的地方,您可以集成一个完整的uri路径,比如https://mydomain-api.com。
您可以使用变量在主vuejs中创建一个.env文件:
VUE_APP_API_URI=http://localhost:8080并为生产创建一个.env.production:
VUE_APP_API_URI=https://mydomain-api.com在您的axios中,只需添加以下内容:
axios.get(`${process.env.VUE_APP_API_URI}${uri}`)现在,以vue.config.js中的本地主机和代理为目标的开发请求被接受。在生产(npm、运行、构建和文件夹域)中,.env.production被接受并直接调用url。
您可以有一个跨源头,以修复您的后端api和添加cors。
app.js中的Nodejs项目示例如下:
// npm install cors
const cors = require('cors');
app.use(cors({
origin: 'https://myFrontEndApp.com'
}))发布于 2022-09-01 16:51:14
当您意外地将web目录设置为/public而不是/dist目录时,就发生了这种情况。在您将应用程序根目录更改为指向nginx设置中的/dist目录后,它工作得很好。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mydomain.com;
root /path/to/my/website/dist;
# other settings below...
}https://stackoverflow.com/questions/73572489
复制相似问题