我是KeystoneJS的新手,我在Heroku的部署上遇到了一个小问题。这是我的网站:http://jeroendruwe.herokuapp.com/,当我导航到管理部分(http://jeroendruwe.herokuapp.com/keystone/signin)时,我得到了无效的Cloudinary提供的错误
Papertrailapp日志:http://pastebin.com/Yn8Pdttz
我读过文档(http://keystonejs.com/docs/configuration/#services-cloudinary)。奇怪的是,当我尝试其中一个(在keystone.js中)时,整个站点就停止工作了:
keystone.set('cloudinary config', { cloud_name: 'my-cloud', api_key: 'abc', api_secret: '123' });
// or
keystone.set('cloudinary config', 'cloudinary://api_key:api_secret@cloud_name' );因此,我目前所做的是在keystone.init中设置属性(.‘cloudinary config':’cloudinary://‘)。我还在CLOUDINARY_URL文件中将url添加到.env环境变量中
我怎样才能解决这个问题?
有人也能解释一下.env文件中的变量是干什么的吗?根中有一个文件,节点_模块/dotenv文件夹中有一个文件,这些文件没有被推送到git中,那么如何使用它们呢?
提前感谢!
发布于 2014-08-03 04:07:03
首先,让我先回答最后一个问题。.env文件由dotenv模块使用,该模块加载.env文件中的变量/值,并使其在process.env中可供应用程序使用。确保在代码中尽早调用.load()方法。
var dotenv = require('dotenv');
dotenv.load();您还应该知道Heroku还有另外两种方法来配置环境变量(参见配置和Config变量)。一个通过您的应用程序仪表板,另一个通过他们的CLI。
使用Heroku仪表板,只需填写NEW_KEY和NEW_VALUE字段,然后按Save。

使用Heroku,只需使用heroku config:set命令即可。
$ heroku config:set CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
Adding config vars and restarting myapp... done, v12
CLOUDINARY_URL: cloudinary://api_key:api_secret@cloud_name如果您正在使用Heroku,我建议您使用这些方法之一来为生产中的应用程序设置CLOUDINARY_URL。
现在回到你原来的问题。这个错误通常意味着Cloudinary配置有问题(即它要么不正确,要么完全缺失)。如果没有看到您正在使用的实际代码,就不可能准确地确定问题所在。
我将假设您用实际值替换api_key、api_secret和cloud_name。尽管如此,我仍然会再次检查,以确保这些值是正确的。
在我的Heroku部署中,我使用dovenv在开发中设置环境变量,并在生产中使用Heroku仪表板或CLI设置它们。
如果您仍然有困难,请张贴您使用的实际代码(当然,省略实际的api键),包括.env文件的内容。
https://stackoverflow.com/questions/25097197
复制相似问题