parsing服务器 – 图像文件的path返回本地主机

我在Azure上部署了2台Ubuntu服务器。 首先,我已经安装了Parse服务器,第二,我安装了MongoDB。 (我也已经从我以前的服务器通过mongorestore准备好了数据库)

一切工作正常! Parse Server和MongoDB服务器。 他们也沟通良好。 事情是,当我运行我的iOS应用程序,它会带来除了图像以外的所有数据正确。 我打印一个图像的URL,这里是它返回的: http://localhost:1337/parse/files/filename.jpeg

如果我用我的服务器的ipreplacelocalhost ,图像正在被很好地取出!

以下是我在index.js

 var express = require('express'); var ParseServer = require('parse-server').ParseServer; var ParseDashboard = require('parse-dashboard'); var allowInsecureHTTP = true; var path = require('path'); var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI; if (!databaseUri) { console.log('DATABASE_URI not specified, falling back to localhost.'); } var api = new ParseServer({ databaseURI: databaseUri || 'mongodb://IP:27017/db', cloud: './cloud/main.js', appId: process.env.APP_ID || 'xxx', masterKey: process.env.MASTER_KEY || 'xxx', //Add your master key here. Keep it secret! fileKey: 'xxx', serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed // Enable email verification verifyUserEmails: false, // The public URL of your app. // This will appear in the link that is used to verify email addresses and reset passwords. // Set the mount path as it is in serverURL publicServerURL: 'http://localhost:1337/parse', }); // Client-keys like the javascript key or the .NET key are not necessary with parse-server // If you wish you require them, you can set them as options in the initialization above: // javascriptKey, restAPIKey, dotNetKey, clientKey var app = express(); // Serve static assets from the /public folder app.use('/public', express.static(path.join(__dirname, '/public'))); // Serve the Parse API on the /parse URL prefix var mountPath = process.env.PARSE_MOUNT || '/parse'; app.use(mountPath, api); // Parse Server plays nicely with the rest of your web routes app.get('/', function(req, res) { res.status(200).send('Make sure to star the parse-server repo on GitHub!'); }); // There will be a test page available on the /test path of your server url // Remove this before launching your app app.get('/test', function(req, res) { res.sendFile(path.join(__dirname, '/public/test.html')); }); var port = process.env.PORT || 1337; var httpServer = require('http').createServer(app); httpServer.listen(port, function() { console.log('parse-server-example running on port ' + port + '.'); }); // Set up parse dashboard var config = { "allowInsecureHTTP": true, "apps": [ { "serverURL": "http://localhost:1337/parse", "appId": "xxx", "masterKey": "xxx", "appName": "name", "production": true } ], "users": [ { "user":"username", "pass":"pass" } ] }; var dashboard = new ParseDashboard(config, config.allowInsecureHTTP); var dashApp = express(); // make the Parse Dashboard available at /dashboard dashApp.use('/dashboard', dashboard); // Parse Server plays nicely with the rest of your web routes dashApp.get('/', function(req, res) { res.status(200).send('Parse Dashboard App'); }); var httpServerDash = require('http').createServer(dashApp); httpServerDash.listen(4040, function() { console.log('dashboard-server running on port 4040.'); }); 

我在Parse的文档中注意到的一件事是: When using files on Parse, you will need to use the publicServerURL option in your Parse Server config. This is the URL that files will be accessed from, so it should be a URL that resolves to your Parse Server. Make sure to include your mount point in this URL. When using files on Parse, you will need to use the publicServerURL option in your Parse Server config. This is the URL that files will be accessed from, so it should be a URL that resolves to your Parse Server. Make sure to include your mount point in this URL.

问题是,这个文档写的有MongoDB,是在与Parse相同的服务器,在我的情况是不是。

有什么想法做什么?

我必须从http://localhost:1337/parsehttp://publicIP:1337/parse来取代parse serverconfiguration的http://publicIP:1337/parse ,一切都变好了!