运行我的openshift应用程序时,没有加载任何CSS或javescript文件。
我在server.js中指定了目录:
app.use(express.static(__dirname));
在index.html中,我指定了文件夹的位置:
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
<script src = "controllers/controller.js"></script>
文件夹的结构如下:
mytest
├── README.md
├── controllers
│ └── controller.js
├── deplist.txt
├── index.html
├── node_modules
├── package.json
├── server.js
└── style.css
当我打开网站并在chrome中打开开发者控制台时,我收到以下错误:
http://mytest-jamestreasure.rhcloud.com/controller.js 404 Not Found
http://mytest-jamestreasure.rhcloud.com/controllers/controller.js 404 Not Found
我不知道还需要添加任何其他内容。
链接到我的openshift:http://mytest-jamestreasure.rhcloud.com/
答案 0 :(得分:1)
用于定义静态内容访问的构造似乎是正确的。请确保您在应用程序上下文中使用它,例如:
myApp.app.use(express.static(__dirname));
尝试运行server.js或使用rhc tail mytest
检查OpenShift远程日志时,可以在本地显示此问题。
我还建议使用专用的静态内容目录,以便公开使用,而不是公开所有内容:
app.use(express.static(__dirname + '/public'));
答案 1 :(得分:0)
问题是由于以下警告,我忽略了这一点:
Warning: express.createServer() is deprecated, express
applications no longer inherit from http.Server,
please use:
var express = require("express");
var app = express();
这意味着我必须改变:
self.app = express.createServer();
为:
self.app = app;
这是self.initialise = function()