Каталог Walker для Python

Это можно сделать, установив свойство homepage в package.json.
При создании проекта вы видите сообщение, объясняющее его:

Проект был построен при условии, что он размещен в корневом каталоге сервера. Чтобы переопределить это, укажите домашнюю страницу в вашем package.json. Например, добавьте это, чтобы построить его для GitHub Pages:

"homepage": "http://myname.github.io/myapp"

blockquote>

См. Документацию: Развертывание: Построение для относительных путей

Если вы сделаете это, он также должен работать на производстве, когда он работает в вашей локальной среде разработчика.

В вашем случае установите "homepage": "https://example.com/interface/", чтобы он работал на производстве. Вам не нужен дополнительный код для этого.

Имейте в виду, что вам, возможно, придется правильно импортировать пути к изображениям, чтобы логика обрабатывалась веб-пакетом. У вас не должно быть реальных веб-путей в ваших компонентах, просто импортируйте вещи из путей, которые есть в вашей среде разработки, и магия работает.

import example from 'images/example.png';
[...]

См. Добавление изображений, шрифтов и стилей и . Использование общей папки: Когда использовать общую папку

5
задан 3 revs 22 April 2009 в 04:34
поделиться

4 ответа

Вместо использования '.' в качестве вашего каталога обратитесь к его абсолютному пути:

for file in DirectoryWalker(os.path.abspath('.')):
    print file

Также я бы рекомендовал использовать слово, отличное от «file», потому что оно что-то означает в языке Python. Не ключевое слово, хотя оно все еще работает.

Кроме того, при работе с именами файлов я считаю, что модуль os.path невероятно полезен - я бы рекомендовал просмотреть его, особенно

os.path.normpath

Нормализует пути (избавляется от лишних '. и' theFolderYouWereJustIn /../'s)

os.path.join

Объединяет два пути

6
ответ дан 18 December 2019 в 08:31
поделиться

Почему вы хотите делать такие скучные вещи самостоятельно?

for path, directories, files in os.walk('.'):
    print 'ls %r' % path
    for directory in directories:
        print '    d%r' % directory
    for filename in files:
        print '    -%r' % filename

Вывод:

'.'
    d'finction'
    d'.hg'
    -'setup.py'
    -'.hgignore'
'./finction'
    -'finction'
    -'cdg.pyc'
    -'util.pyc'
    -'cdg.py'
    -'util.py'
    -'__init__.pyc'
    -'__init__.py'
'./.hg'
    d'store'
    -'hgrc'
    -'requires'
    -'00changelog.i'
    -'undo.branch'
    -'dirstate'
    -'undo.dirstate'
    -'branch'
'./.hg/store'
    d'data'
    -'undo'
    -'00changelog.i'
    -'00manifest.i'
'./.hg/store/data'
    d'finction'
    -'.hgignore.i'
    -'setup.py.i'
'./.hg/store/data/finction'
    -'util.py.i'
    -'cdg.py.i'
    -'finction.i'
    -'____init____.py.i'

Но если вы настаиваете, в os.path , os есть инструменты, связанные с путями. .basename - это то, на что вы смотрите.

>>> import os.path
>>> os.path.basename('/hello/world.h')
'world.h'
12
ответ дан 18 December 2019 в 08:31
поделиться

os.path.dirname ()? os.path.normpath ()? os.path.abspath ()?

Это также было бы прекрасным местом для рекурсии.

1
ответ дан 18 December 2019 в 08:31
поделиться

Просто добавьте текущий путь к каталогу к возвращенному пути "./foo":

print os.path.join(os.getcwd(), file)
0
ответ дан 18 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: