我是keystone的新手,我正试图部署一个简单的网站模板来熟悉这项技术,我已经下载了所有相关模块,并创建了一个keystone.js文件和一个package.json文件,其中包含了所有的依赖项。但是,当我试图在终端中运行keystone.js时,会得到以下信息:
Error: Invalid Configuration
CloudinaryImage fields (Gallery.heroImage) require the "cloudinary config" option to be set.
See http://keystonejs.com/docs/configuration/#cloudinary for more information.
我已经用cloudinary建立了一个帐户,并使用npm安装来确保它安装在系统中,但是它显然找不到配置。我假设有一个简单的解决方案,我只需将我的信任字段放在正确的代码位置,但我似乎找不到任何关于在哪里插入我的帐户详细信息的说明。任何帮助都将不胜感激,如果我遗漏了任何重要代码,请告诉我。
keystone.js:
require('dotenv').load();
// Require keystone
var keystone = require('keystone'),
handlebars = require('express3-handlebars');
// Initialise Keystone with your project's configuration.
// See http://keystonejs.com/guide/config for available options
// and documentation.
keystone.init({
'name': 'Tech Website',
'brand': 'Tech Website',
'less': 'public',
'static': 'public',
'favicon': 'public/favicon.ico',
'views': 'templates/views',
'view engine': 'hbs',
'custom engine': handlebars.create({
layoutsDir: 'templates/views/layouts',
partialsDir: 'templates/views/partials',
defaultLayout: 'default',
helpers: new require('./templates/views/helpers')(),
extname: '.hbs'
}).engine,
'auto update': true,
'session': true,
'auth': true,
'user model': 'Yes',
'cookie secret': 'pUO>=q^~Z.h]~pO"k;:]dTcTb:6pT3Xyassxdk>9K]7J0MGqSWWr;$rs6lG<XLdB'
});
// Load your project's Models
keystone.import('models');
// Setup common locals for your templates. The following are required for the
// bundled templates and layouts. Any runtime locals (that should be set uniquely
// for each request) should be added to ./routes/middleware.js
keystone.set('locals', {
_: require('underscore'),
env: keystone.get('env'),
utils: keystone.utils,
editable: keystone.content.editable
});
// Load your project's Routes
keystone.set('routes', require('./routes'));
// Setup common locals for your emails. The following are required by Keystone's
// default email templates, you may remove them if you're using your own.
// Configure the navigation bar in Keystone's Admin UI
keystone.set('nav', {
'posts': ['posts', 'post-categories'],
'galleries': 'galleries',
'enquiries': 'enquiries',
'yes': 'yes'
});
// Start Keystone to connect to your database and initialise the web server
.start();
package.json
{
"name": "tech-website",
"version": "0.0.0",
"private": true,
"dependencies": {
"keystone": "~0.2.27",
"async": "~0.9.0",
"underscore": "~1.7.0",
"moment": "~2.8.1",
"express3-handlebars": "~0.5.0",
"handlebars": "^2.0.0-alpha.2",
"dotenv": "0.4.0"
},
"devDependencies": {
"grunt": "~0.4.4",
"grunt-express-server": "~0.4.17",
"grunt-contrib-watch": "~0.6.1",
"grunt-contrib-jshint": "~0.7.1",
"jshint-stylish": "~0.1.3",
"load-grunt-tasks": "~0.4.0",
"grunt-node-inspector": "~0.1.5",
"time-grunt": "~0.3.1",
"grunt-concurrent": "~0.5.0",
"grunt-nodemon": "~0.2.1",
"open": "0.0.5"
},
"engines": {
"node": ">=0.10.22",
"npm": ">=1.3.14"
},
"scripts": {
"start": "node keystone.js"
},
"main": "keystone.js"
}
发布于 2014-10-04 00:53:35
在您的Cloudinary
应用程序中,您可以通过多种方式配置KeystoneJS。
一个选项是设置CLOUDINARY_URL
环境变量。您可以在.env
文件中这样做,因为您使用的是dotenv
。
CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
第二个选择是在Keystonejs应用程序中设置cloudinary config
设置。
您可以在您的keystone.init()
中这样做。
keystone.init({
...
'cloudinary config': 'cloudinary://api_key:api_secret@cloud_name',
...
});
..。或者使用keystone.set()
方法。
keystone.set('cloudinary config', 'cloudinary://api_key:api_secret@cloud_name' );
这些内容在KeystonsJS配置页面上都有详细说明,但现在已经不存在了。
发布于 2015-03-08 10:46:01
增加一些东西-
实际上,当我将配置设置部分放置在
keystone.init部分使用策划人对我不起作用。
keystone.init({
...
'cloudinary config': 'cloudinary://api_key:api_secret@cloud_name',
...
});
上面的代码是唯一一个完美无缺的代码。
发布于 2016-02-01 03:07:39
这是我如何部署到heroku。在keystone.js中添加一个块以使用环境变量:
if (keystone.get('env') == 'production'){
keystone.set('cloudinary config', process.env.CLOUDINARY_URL);
keystone.set('cookie secret', process.env.COOKIE_SECRET);
keystone.set('mandrill api key', process.env.MANDRILL_API_KEY);
}
然后通过命令行在heroku实例上设置环境变量:
$ heroku config:set MANDRILL_API_KEY=YOUR_API_KEY
$ heroku config:set CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
$ heroku config:set NODE_ENV=production
$ heroku config:set COOKIE_SECRET=YOUR_COOKIE_STRING
https://stackoverflow.com/questions/26179411
复制相似问题