سؤال

قد يكون هذا مؤلم ببساطة السؤال الذي سوف يكون سخر ولكن أواجه صعوبة في استخدام filepaths في masterpages.وأعتقد أن هذا هو لأنه إذا كانت الصفحة في الدليل الفرعي باستخدام masterpage ثم أسم دليل غير صحيح.

لإصلاح هذا أنا بحاجة للحصول على أسم دليل من جذورها ولكن أنا لا يمكن أن يبدو للحصول على عمل.

حاولت:

            <script type="text/javascript" src="~/jQueryScripts/jquery.js"></script> 

و

            <script type="text/javascript" src="../jQueryScripts/jquery.js"></script> 

لا حظ على سواء!

أي الأفكار حول كيف يمكن أن أقول ذلك للحصول على أسم دليل من الجذر ؟ شكرا :)

هل كانت مفيدة؟

المحلول

وأنا مجرد افتراض التي كتبها أسم دليل، يعني في الواقع رابط (أو أوري، وينسى واحد الذي هو جزئي).

وبدون ~، ينبغي أن المثال الأول العمل. سوف <script type="text/javascript" src="/jQueryScripts/jquery.js"></script> يسبب المستعرض لطلب http://www.example.com/jQueryScripts/jquery.js (حيث www.example.com هو المجال الخاص بك).

نصائح أخرى

إذا كنت تقوم بتشغيل موقع تمكين AJAX، راجع ردي على <لأ href = "https://stackoverflow.com/questions/183859/preferred-way-to-include-relative-reference-to-javascript -in-مقابل-2008-متداخلة ماس # 184952 "> الطريقة المفضلة لتشمل مرجع نسبي إلى تفعيل جافا سكريبت في VS 2008 متداخلة Masterpage .

وأعتقد أنك بحاجة إلى runat=server في العلامة <head> من MasterPage لهذا إعادة تحديد URL للعمل.

<head runat="server">

أولا تيلدا أمام أمر asp.net لاستخدامها في عناصر تحكم الملقم ولن يعمل في HTML الأساسية.

ودون الخوض في شرح مفصل هل يمكن أن مجرد استخدام خط مائل (/) في الجبهة، وتشمل اسم التطبيق على شبكة الإنترنت إن لم يكن الموقع جذورها.

وأو هل يمكن وضع التعليمات البرمجية في الصفحة الرئيسية الخاصة بك لتضمين حيوي البرامج النصية، والسماح لها التعامل مع تحديد المسارات. مثل:

    public void AddJavascript(string javascriptUrl)
    {   
        HtmlGenericControl script = new HtmlGenericControl("script");
        script.Attributes.Add("type", "text/javascript");
        javascriptUrl += "?v" + Assembly.GetExecutingAssembly().GetName().Version;
        script.Attributes.Add("src", ResolveUrl(javascriptUrl));
        Page.Header.Controls.Add(script);
    }

ورمز أعلاه أيضا بإلحاق إصدار التجميع. أنا استخدم هذا في الغالب لأغراض التنمية، الحصول على تحديث الملفات الخاصة بي جافا سكريبت كلما أبني.

هل يمكن استخدام الصفحة.ResolveUrl طريقة للالتفاف على هذا

على سبيل المثال:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top