views:

40

answers:

2

I have a Google App Engine app that works fine on the dev server. However, when I upload it, the CSS is gone. The scripts are still there, however.

From app.yaml:

- url: /scripts
  static_dir: Static/Scripts

- url: /styles
  static_dir: Static/styles

From the base template:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <script type="text/javascript" src="./scripts/JQuery.js"></script>
    <script type="text/javascript" src="./scripts/sprintf.js"></script>
    <link rel="stylesheet" href="./styles/style.css" type="text/css" media="screen" />
</head>

What could be causing this? Am I doing something wrong?

+3  A: 

The URL you're serving by specifying - url: /scripts is going to be something like http://foobar.appspot.com/scripts. The URL you're requesting, given that you chose to use href="./styles/style.css", will be the same only for top-level pages -- if you have that header on, say, http://foobar.appspot.com/good/grief, then you'll be requesting your styles from http://foobar.appspot.com/good/styles/style.css and the like. Why would you want that?! Use href="/styles/style.css", without that extremely peculiar leading dot, and you'll be requesting the style from http://foobar.appspot.com/styles/style.css -- which looks to be where you want to be serving it from -- whatever page on foobar.appspot.com you request it from.

Alex Martelli
A: 

In addition to Alex's answer, I note you seem to be using capitalization inconsistently - some first letters are capitalized, and others aren't. Bear in mind that while Windows is not case-insensitive, most platforms are case-sensitive - so if you weren't strict about using the same capitalization for the same name everywhere, when you deploy, you will get a lot of 404s in place of expected files.

Nick Johnson