2014-11-04 4 views
1

Я мой Nginx конф файл со статическим адресом файла устанавливается как:Невозможно ссылаться на статические файлы на Nginx + самонастройки

# Settings to by-pass for static files 
    location ^~ /static/ { 

     # Example: 
     # root /full/path/to/application/static/file/dir; 
     root /opt/flaskapp/static/; 

    } 

Мой файл шаблона имеет это:

<link href="/static/bootstrap.min.css" rel="stylesheet" media="screen"> 
<link href="/static/bootstrap-responsive.css" rel="stylesheet"> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="/static/bootstrap.min.js"></script> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 

Хотя, когда я запускать мое приложение для флэсов - bootstrap не загружает ни один из js :(

Я пробовал несколько комбинаций мест и даже пытался использовать это в моем файле nginx con:

location /bootstrap.min.js { alias /opt/flaskapp/static/bootstrap.min.js; } 

Я могу получить доступ к файлу js через 127.0.0.1/bootstrap.min.js.

Уверен, что мне не хватает чего-то глупого.

Спасибо!

+0

Служба nginx не перезапускается, когда я меняю ее таким образом –

+0

ops, моя ошибка, ваша конфигурация фактически разрешена, как описано здесь: https://www.linode.com/docs/websites/nginx/basic-nginx- Конфигурация –

+0

, когда он будет правильно настроен, я смогу получить статические файлы через: 127.0.0.1/static/file_name.js? –

ответ

1

Это потому, что вы думаете, что Nginx не будет искать /opt/flaskapp/static/<file> в файловой системе, пока он смотрит на /opt/flaskapp/static/static/<file>, поскольку URI всегда добавляется к локальному пути (root), пока вы либо:

  • Использование rewrite изменить URI.
  • Укажите префикс местоположения или регулярное выражение на физический путь, используя директиву alias.

Так что в вашем случае, если вы хотите, последний, а правая конфигурация:

location ^~ /static/ { 
    alias /opt/flaskapp/static/; 
} 

В вашем конкретном случае, как префикс URI является такой же, как имя каталога, вы также можете просто изменить ваш локальный root в родительский каталог (root /opt/flaskapp).