【发布时间】:2014-09-13 08:25:39
【问题描述】:
我正在尝试在启用了 CORS 的节点服务器中托管独立的 JS 小部件。 我正在使用 Expressj 4 并且想要服务器 css、js 和字体文件。
我现在面临的问题是没有加载字体文件
var express = require('express');
var path = require('path');
var methodOverride = require('method-override');
var bodyParser = require('body-parser');
var app = express();
var environmentRoot = require('path').normalize(__dirname );
app.set('views', environmentRoot + '/public');
app.engine('html', require('ejs').renderFile);
app.use(methodOverride());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(environmentRoot + '/public'));
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
var portNum = process.env.PORT || 3002;
app.listen(portNum, function (a) {
console.log("Server listening in http://localhost:"+portNum);
});
JSON 包
{
"name": "PackageApp",
"version": "0.1.0",
"dependencies": {
"express" : "~4.9.0",
"body-parser": "~1.8.1",
"method-override": "~2.2.0",
"ejs" : "~1.0.0"
},
"devDependencies": {
"grunt": "~0.4.5",
"grunt-html2js": "~0.1.0"
}
}
【问题讨论】:
-
你试过看开发者工具栏吗?标题是否存在? javascript 控制台或网络选项卡中是否有任何错误?
-
来自“myhostname”的字体已被跨域资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'localhost:3001'。
-
我试过了,还是一样的问题。
-
我的服务器是ubuntu,不知道有没有影响。
-
我也试试,非常感谢您的建议。