0

I am not able to get the correct path of CSS or JS file when i try to access them from sub folder en/Default.aspx file.

I have following folder structure

Default.aspx
  en/Default.aspx
  en/MasterPage.master
  ar/Default.aspx
  ar/MasterPage.master
scripts/slider/script.js
styles/slider-en.css
scripts/slider/jquery.easing.js

Code in en/Default.aspx file

<%@ Page Title="" Language="C#" MasterPageFile="~/en/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<%@ Register Src="~/en/UserControls/ucSliderHP.ascx" TagName="ucSlider"  TagPrefix="uc"%>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<script src="../scripts/slider/jquery.easing.js" type="text/javascript"></script>
<script src="../scripts/slider/script.js" type="text/javascript"></script>
<link href="<%= Page.ResolveUrl("./styles/slider-en.css") %>" rel="stylesheet" type="text/css" />

<div id="content-container-750">
    <!-- Slider   -->
    <!-- Sidebar   -->
<div id="sidebar-container-240"></div>
<!-- Sidebar   -->
    <div id="Slider-Wrapper-750x300">
       <uc:ucSlider ID="NewsSlider" runat="server" />       
    </div>
     <!-- Slider   -->

      <!-- Banner   -->
      <div id="content-Banner-750x100HP">
      </div>
      <!-- Banner   -->
      <!-- Article   -->
      <div id="article-wrapperHP">
      </div>
      <!-- Article   -->
</div>

</asp:Content>

When i use ../ path it always returns path as http://localhost:49831/en/scripts/slider/script.js

and when i use `Page.ResolveURL or ResolveURL it return me path as

http://localhost:49831/website/en/Default.aspx?language=en-us&issue=5

I am not sure what should i do i tried ../../ also it doesn't work either

Learning
  • 19,469
  • 39
  • 180
  • 373

3 Answers3

0

Try using ResolveUrl:

<script src="<%=ResolveUrl("~/scripts/slider/jquery.easing.js")%>"  type="text/javascript"></script>

instead of

<script src="../scripts/slider/jquery.easing.js" type="text/javascript"></script>
Kjetil Watnedal
  • 6,097
  • 3
  • 29
  • 23
0

You can also add the tilde (~) and runat="server" to get ASP .NET to resolve the url based on the root.

e.g.

<link href='~/styles/slider-en.css' rel="stylesheet" type="text/css" runat="server"/>

See other options on this question

Community
  • 1
  • 1
robasta
  • 4,621
  • 5
  • 35
  • 53
0
You can Use
    /scripts/slider/jquery.easing.js
<script src="/scripts/slider/jquery.easing.js" type="text/javascript"></script>


"/"  

Means root.

halit
  • 1,128
  • 1
  • 11
  • 27