在OpenShift上我创建了基本的node0.10盒式磁带,并且有一个node_modules文件夹,我试图在index.html
中获取某些文件,但它只给我404
http错误。
index.html
导入的方式如下:
<script src="es6-shim/es6-shim.min.js"></script>
<script src="systemjs/dist/system-polyfills.js"></script>
<script src="angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="angular2/bundles/angular2-polyfills.js"></script>
<script src="systemjs/dist/system.src.js"></script>
<script src="rxjs/bundles/Rx.js"></script>
<script src="angular2/bundles/angular2.dev.js"></script>
然后我server.js
我需要app.js
:
...
var app = express();
require('./app.js').setApp(app);
...
app.js
看起来像这样:
var express = require('express');
var app = express();
var path = require("path");
exports.setApp = function (app) {
app.use(express.compress());
var oneDay = 86400000;
app.use(express.static(path.join(__dirname + '/node_modules'), { maxAge: oneDay }));
app.use(express.static(path.join(__dirname + '/'), { maxAge: oneDay }));
};
可能是什么问题?为什么OpenShift无法访问node_modules
文件夹及其子文件夹中的静态文件?
答案 0 :(得分:1)
这很简单,服务器无法通过你在html中指向的静态文件夹读取文件,直到app.use()为止。
在server.js中添加一行
在self.initializeServer = function() {}
self.app.use(express.static(__dirname + '/public'));
根据上面的代码,将html更改为
<script src="/public/js..."></script>
同样的事情是
self.app.use('/', express.static(__dirname + '/web'));
需要将路径更改为:
<script src="/js..."></script>
阅读this article以获取有关server.js
的更多信息