2017-04-30 20 views
5

Tôi có 3 thư mục trong một ứng dụng web Django. Các thư mục như sau: thư mục chứa settings.py (project), thư mục chứa models.py (ứng dụng) và thư mục chứa ứng dụng phản ứng giao diện người dùng được tạo bởi ứng dụng tạo phản ứng.Django, Tạo phản ứng-ứng dụng, Heroku

Tôi muốn xây dựng giao diện người dùng, sao chép các tạo phẩm xây dựng vào thư mục tĩnh và sau đó chạy ứng dụng django trên heroku, nhưng chúng đã làm cho quá trình này không thể thực hiện được với cấu trúc thư mục hiện tại của tôi. Cách khác là làm phẳng ứng dụng phản ứng và xây dựng, src, node_modules, packagejson, v.v. v.v. tại gốc của dự án, nhưng điều này có vẻ thực sự tồi tệ.

Một số cấu hình trong settings.py:

STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'), 
os.path.join(BASE_DIR, 'front-end/build/static') 

)

Những gì tôi chạy cục bộ bên trong front-end:

npm run build 

Những gì tôi đang trở về từ quan điểm:

def index(request): 

    return HttpResponse(loader.get_template('build/index.html').render()) 
    #above line returns index.html that is generated by npm run build 

Làm cách nào để triển khai dự án được mô tả ở trên để Heroku để nó có thể tìm thấy tất cả các tài nguyên tĩnh?

+0

Một người không đáng thương thực sự trả lời. Tôi có một vấn đề tương tự với Ruby. –

+0

@EddeAlmeida for Rails Tôi tìm thấy hai hướng dẫn hay (mà tôi muốn chuyển sang Django để trả lời câu hỏi này ...) - https://www.fullstackreact.com/articles/how-to-get-create-react-app- to-work-with-your-rails-api/và https://medium.com/superhighfives/a-top-shelf-web-stack-rails-5-api-activeadmin-create-react-app-de5481b7ec0b của bạn – metakermit

Trả lời

0

Bạn có thể sử dụng một liên kết symlink mà đặt bạn phản ứng của xây dựng ra vào thư mục django bạn

Ví dụ, nếu cấu trúc thư mục của bạn là như thế này:

~/project_root/ 
~/project_root/django/static/ 
~/project_root/my_react_app/build 

cd để ~/project_root/django/static/ và chạy

ln -s ../../my_react_app/build . 

Điều này sẽ tạo ra ~/project_root/django/static/build trỏ đến ~/project_root/my_react_app/build

Các vấn đề liên quan