2016-04-30 4 views
1

Привет Я новичок в nodejs, и мне просто удалось развернуть приложение nodejs онлайн. Теперь я хотел бы знать, как связать CSS, JS или файлы изображений, потому что, когда я пытаюсь сделать это, как раньше, я получаю ошибку GET (not found).Найти узел css-файла js

Архитектура папки:

--public 
    --assets 
    --css 
     index.css 
    --js 
--views 
    --index.ejs 
--node modules 
app.js 
package.json 

Предполагая, что я хочу, чтобы закодировать ссылку index.css в index.ejs, что мне нужно написать в моем app.js файл пожалуйста.

app.js код:

var express = require('express'); 
var app = express.createServer(); 

app.set('view engine', 'ejs'); 

app.use(express.static(__dirname + '/public')); 

app.get('/', function(req,res){ 
    res.render('index'); 
}); 


app.listen(8080,'IP_ADRESS'); 

index.ejs код:

<link rel="stylesheet" type="text/css" href="/css/index.css"> 
+0

Вы должны добавить css в html-файл и установить папку express.static в "public". Покажите нам свой app.js, чтобы мы могли вам помочь. – QoP

+0

Яснее ли это? – anonym

ответ

0

Во-первых, есть статичный файл . В принципе, это файл, который отправляется через Интернет без каких-либо изменений. Файлы изображений и CSS обычно представляют собой статические файлы.

Похоже, вы поставили свои статические файлы в папку с именем public.

Экспресс имеет встроенную функцию для отправки статических файлов под названием express.static. Вы можете использовать его следующим образом:

// Require the modules we need. 
var express = require('express'); 
var path = require('path'); 

// Create an Express app. 
var app = express(); 

// Get the path to the `public` folder. 
// __dirname is the folder that `app.js` is in. 
var publicPath = path.resolve(__dirname, 'public'); 

// Serve this path with the Express static file middleware. 
app.use(express.static(publicPath)); 

// ... 

Теперь вы должны будете видеть статические файлы. Если ваш сайт обычно доступен по адресу http://localhost:3000, вы сможете увидеть index.css по адресу http://localhost:3000/css/index.css.

Если вы хотите знать пути слишком много о express.static, вы можете проверить a blog post I wrote, что входит в статические файлы Express, а в глубине.

+0

Ваш код, кажется, sork, когда я проверяю источники на google chrome. Я вижу файл index.css, когда я его редактирую, он редактирует мой код, но когда я пытаюсь отредактировать индекс. css-файл, расположенный на моем сервере, не обновляется. Спасибо за вашу ссылку, она оценила – anonym

+0

Возможно, ваш браузер кэширует 'index.css'. Попробуйте сделать [жесткую перезагрузку] (http://stackoverflow.com/q/14969315/804100) в своем браузере. –

+0

Спасибо за ответ, но я уже пробовал – anonym

0

Базовый набор из обслуживания статических файлов в экспресс:

var express = require("express"); 
var app = express(); 
... 
app.use(express.static(__dirname + '/public')); 
... 
app.listen(3000); 

Теперь в вашем. ejs для загрузки стилей css или js-скриптов:

<link rel="stylesheet" href="/css/index.css"/> 
+0

Это правильно для Express 2.x. Это изменилось в Express 3+. –

+0

Я использую Express 3+ – anonym