node.js - شرح - express vpn




يتعذر على Express-js الحصول على ملفات ثابتة ، لماذا؟ (8)

لقد خفضت شفرتي إلى أبسط تطبيق Express-js يمكنني إجراؤه:

var express = require("express"),
    app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);

يبدو بلدي الدليل مثل هذا:

static_file.js
/styles
  default.css

ومع ذلك ، عند الوصول إلى http://localhost:3001/styles/default.css أتلقى الخطأ التالي:

Cannot GET / styles /
default.css

أنا أستخدم express 2.3.3 node 0.4.7 . ما الخطأ الذي افعله؟


أجد ملف css الخاص بي وأضف طريقًا إليه:

app.get('/css/MyCSS.css', function(req, res){
  res.sendFile(__dirname + '/public/css/MyCSS.css');
});

ثم يبدو أن العمل.


أنا أستخدم Bootstrap CSS و JS و Fonts في طلبي. أنا خلقت مجلد يسمى asset في الدليل الجذر للتطبيق ووضع كل هذا المجلد داخله. ثم في ملف الخادم إضافة السطر التالي:

app.use("/asset",express.static("asset"));

يمكّنني هذا الخط من تحميل الملفات الموجودة في دليل asset من بادئة مسار /asset مثل: http://localhost:3000/asset/css/bootstrap.min.css .

الآن في طرق العرض يمكنني ببساطة تضمين CSS و JS كما يلي:

<link href="/asset/css/bootstrap.min.css" rel="stylesheet">

جرّب http://localhost:3001/default.css .

للحصول على /styles في عنوان URL لطلبك ، استخدم:

app.use("/styles", express.static(__dirname + '/styles'));

انظر إلى الأمثلة الموجودة في هذه الصفحة :

//Serve static content for the app from the "public" directory in the application directory.

    // GET /style.css etc
    app.use(express.static(__dirname + '/public'));

// Mount the middleware at "/static" to serve static content only when their request path is prefixed with "/static".

    // GET /static/style.css etc.
    app.use('/static', express.static(__dirname + '/public'));

حاول الوصول إليه باستخدام http://localhost:3001/default.css .

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

كنت في الواقع يعطيه اسم المجلد أي أنماط لا suburl الخاص بك.


لتقديم ملفات ثابتة (css ، صور ، ملفات js) فقط خطوتين:

  1. تمرير دليل ملفات CSS إلى المدمج في الوسيطة express.static

    var express = require('express');
    var app = express();
    /*public is folder in my project directory contains three folders
    css,image,js
    */
    //css  =>folder contains css file
    //image=>folder contains images
    //js   =>folder contains javascript files
    app.use(express.static( 'public/css'));
    
  2. للوصول إلى ملفات CSS أو الصور فقط اكتب في http://localhost:port/filename.css url http://localhost:port/filename.css السابقين: http://localhost:8081/bootstrap.css

ملاحظة: لربط ملفات css بـ html فقط اكتب <link href="file_name.css" rel="stylesheet">

إذا كتبت هذا الرمز

var express = require('express');
var app = express();
app.use('/css',express.static( 'public/css'));

للوصول إلى الملفات الثابتة فقط اكتب في url: localhost: port / css / filename.css ex: http://localhost:8081/css/bootstrap.css

لاحظ لربط ملفات CSS مع HTML فقط إضافة السطر التالي

<link href="css/file_name.css" rel="stylesheet">    

لدي نفس المشكلة. لقد حل المشكلة مع التعليمات البرمجية التالية:

app.use('/img',express.static(path.join(__dirname, 'public/images')));
app.use('/js',express.static(path.join(__dirname, 'public/javascripts')));
app.use('/css',express.static(path.join(__dirname, 'public/stylesheets')));

مثال طلب ثابت:

http://pruebaexpress.lite.c9.io/js/socket.io.js

أحتاج إلى حل أكثر بساطة. هل تتواجد؟


هذا العمل بالنسبة لي

app.use(express.static(path.join(__dirname, 'public')));

app.use('/img',express.static(path.join(__dirname, 'public/images')));

app.use('/shopping-cart/javascripts',express.static(path.join(__dirname, 'public/javascripts')));

app.use('/shopping-cart/stylesheets',express.static(path.join(__dirname, 'public/stylesheets')));

app.use('/user/stylesheets',express.static(path.join(__dirname, 'public/stylesheets')));

app.use('/user/javascripts',express.static(path.join(__dirname, 'public/javascripts')));

هذا العمل بالنسبة لي:

app.use('*/css',express.static('public/css'));
app.use('*/js',express.static('public/js'));
app.use('*/images',express.static('public/images'));




express