اذهب إلى المحتوى

السؤال

نشر

لقد قمت بتجربة مشروع بسيط باستخدام express.js في خادم node.js وقمت بكتابة الكود التالي:

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

والمجلدات الموجودة ضمن المشروع موزّعة بهذا الشكل:

home.js
/styles
  main.css

ولكن عندما أحاول الوصول إلى ملف التنسيقات من خلال المتصفح: http://localhost:5000/styles/main.css يظهر لي الخطأ التالي:

Cannot GET / styles /
main.css

كيف يمكنني حل هذه المشكلة؟

Recommended Posts

  • 1
نشر

يمكنك تجربة الرابط التالي:

http://localhost:5000/main.css

أما في حال أردت وجود /styles في الرابط، فيجب أن تقوم بتعديل الكود لديك ليصبح بالشكل التالي:

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

فمع عدم ذكر أي مسار في كود app.use ستتم الاستجابة إلى المسار الرئيسي لمجلّد مشروعك دون أي إضافات.

  • 1
نشر

كما في التعليق السابق فإنه عند استخدام الكود app.use كالتالي

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

فإنه يمكنك الوصول للملفات في مجدل styles مباشرة 

http://localhost:5000/main.css

بينما إذا حددت path معين ك styles 

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

فيجب عليك الوصول للمجلد styles كالتالي

http://localhost:5000/styles/main.css 

لاحظ الفرق بين استخدام الطريقتين حيث أن عند استدعاء مثلاً ملفات التنسيق 

  • عند استخدام الطريقة الأولى نستدعي الملف مباشرة من اسمه كالتالي
    <link href="file_name.css" rel="stylesheet">

     

  • عند استخدام الطريقة الثانية نستدعي الملف من اسمه ولكن قبله المسار الذي حددناه كالتالي

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

     

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...