OK. Поэтому я понял, как это сделать, используя LineCollecion, чтобы нарисовать линию на оси.
import numpy as np
import pylab as pl
from matplotlib import collections as mc
segments = []
colors = np.zeros(shape=(10,4))
x = range(10)
y = np.random.choice(10,10)
i = 0
for x1, x2, y1,y2 in zip(x, x[1:], y, y[1:]):
if y1 > y2:
colors[i] = tuple([1,0,0,1])
elif y1 < y2:
colors[i] = tuple([0,1,0,1])
else:
colors[i] = tuple([0,0,1,1])
segments.append([(x1, y1), (x2, y2)])
i += 1
lc = mc.LineCollection(segments, colors=colors, linewidths=2)
fig, ax = pl.subplots()
ax.add_collection(lc)
ax.autoscale()
ax.margins(0.1)
pl.show()
express.static()
ожидает, что первым параметром будет путь , а не имя файла. Я хотел бы предложить создать еще один подкаталог для размещения вашего index.html
и использовать его.
Если у вас есть эта настройка
/app
/public/index.html
/media
, тогда это должно получить то, что вы хотели
var express = require('express');
//var server = express.createServer();
// express.createServer() is deprecated.
var server = express(); // better instead
server.configure(function(){
server.use('/media', express.static(__dirname + '/media'));
server.use(express.static(__dirname + '/public'));
});
server.listen(3000);
Трюк покидает эту строку как последний резерв
server.use(express.static(__dirname + '/public'));
Что касается документации, поскольку Express использует связующее ПО, мне было проще просто посмотреть исходный код подключения напрямую.
Например, эта строка показывает, что поддерживается index.html https://github.com/senchalabs/connect/blob/2.3.3/lib/middleware/static.js#L140
Application.configure()
был зарегистрирован как наследие в 3.x и удален в 4.x. См. Ответ ChrisCantrell для обновленного примера.
– Anm
26 January 2015 в 16:19
В новейшей версии выражения «createServer» устарел. Этот пример работает для меня:
var express = require('express');
var app = express();
var path = require('path');
//app.use(express.static(__dirname)); // Current directory is root
app.use(express.static(path.join(__dirname, 'public'))); // "public" off of current is root
app.listen(80);
console.log('Listening on port 80');
__file__
, который вы используете с os.path.dirname(os.path.realpath(__file__))
– Abdelouahab
12 November 2014 в 02:28
npm install serve-index
blockquote>var express = require('express') var serveIndex = require('serve-index') var path = require('path') var serveStatic = require('serve-static') var app = express() var port = process.env.PORT || 3000; /**for files */ app.use(serveStatic(path.join(__dirname, 'public'))); /**for directory */ app.use('/', express.static('public'), serveIndex('public', {'icons': true})) // Listen app.listen(port, function () { console.log('listening on port:',+ port ); })
res.sendFile
& amp; express.static
оба будут работать для этого
var express = require('express');
var app = express();
var path = require('path');
var public = path.join(__dirname, 'public');
// viewed at http://localhost:8080
app.get('/', function(req, res) {
res.sendFile(path.join(public, 'index.html'));
});
app.use('/', express.static(public));
app.listen(8080);
Где public
- это папка, в которой код на стороне клиента
Поскольку предложил на @ATOzTOA и , поясняемые @Vozzie , path.join
принимают пути для объединения в качестве аргументов, +
передает один аргумент пути.
path.join
принимает пути для объединения в качестве аргументов, +
передает один аргумент пути.
– ATOzTOA
27 April 2018 в 16:47
path.join(public + 'index.html')
на path.join(public, 'index.html')
. И пока на нем измените __dirname + "/public/"
на path.join(__dirname, 'public')
– Vozzie
1 May 2018 в 04:01
express.static
ожидает, что одним параметром будет путь .... – Seti 16 December 2016 в 09:21