2015-10-18 2 views
0

При запуске приложения openhift ни один из файлов CSS или javescript не загружается.OpenShift не может найти файлы css и js

Я уточнял каталог в 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 

Когда я открываю websi тэ и откройте консоль разработчика в хроме я получаю следующие ошибки:

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/

ответ

1

Ваша конструкция для определения статического доступа к контенту, кажется правильным. Убедитесь, что вы используете его с контекста приложения, хотя, например .:

myApp.app.use(express.static(__dirname)); 

Такая проблема может быть раскрыта либо локально, при попытке запустить server.js или с помощью rhc tail mytest для проверки удаленных журналов OpenShift.


Я бы также рекомендовал использовать специальный каталог для статического контента, который предназначен для использования публично, а не подвергая все:

app.use(express.static(__dirname + '/public')); 
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()

+0

Вы действительно понимаете, что вы больше не испытывает проблемы, как вы первоначально отправил? В прошлый раз вы не включили JS-файлы, исправили их, и теперь я отвечаю на совершенно другой вопрос. Это не является отдаленным ответом на ваш собственный вопрос. Вы в основном говорите, что ваша некорректная функция создала 404 ошибки в ваших двух файлах JS. – Nelson

+0

То, что я опубликовал, исправил мою ошибку. Я запустил свой сервер локально, и вместо того, чтобы просто получать предупреждение, которое я разместил, которое я игнорировал, он сделал ошибку и не запустился. Исправление этой ошибки заставил ее найти файлы js и css, поскольку я ничего не изменил. – JaAnTr

+0

@JaAnTr, предупреждение не вызывало проблемы. Вы можете убедиться, что вернув изменения на 'server.js' и попробовав то, что я предложил.Кажется, вы используете содержимое dafault в файле 'server.js', который поставляется с картриджем node.js на OpenShift - если это так, просто используйте этот' zapp.app.use (express.static (__ dirname)); 'in раздел основной кода (последняя строка в файле), оставайтесь без изменений и вы все равно получите предупреждение, но файлы будут доступны по вашему желанию (так, например, даже server.js будет общедоступным на URL вашего приложения) , –

 Смежные вопросы

  • Нет связанных вопросов^_^