2013-08-30 30 views
6

Um cố gắng để tải một tập tin javascript như sau để tập html.erb tôilàm thế nào để tải một tập tin Javascript để ray html ERB

<script src="/public/javascripts/test.js" type="text/javascript" /> 

sẵn có của mình vào thư mục công cộng và nó trong thư mục gốc

root/công cộng/javascript

nhưng nó đem lại cho tôi một lỗi nói

"NetworkError: 404 Not Found - http://0.0.0.0:3000/public/javascripts/test.js" 

những gì có thể có thể sai? có cách nào khác để đưa tệp javascipt vào đường ray không?

Trả lời

18

Nếu tập tin javascript là trong bất kỳ thư mục tài sản (tài sản, nhà cung cấp, bó) cho Rails 3.x), bạn có thể thêm các kịch bản để tập html.erb của bạn bằng cách thêm những điều sau đây:

<%= javascript_include_tag('test.js') %> 
+3

tại đây() là tùy chọn.Bạn có thể chỉ định <% = javascript_include_tag 'test.js'%> như thế này. Nếu bạn muốn bao gồm nhiều tệp js thì hãy sử dụng như thế này <% = javascript_include_tag 'test.js', 'test1.js', 'test2.js'%> – Inaccessible

2

Rails mặc định sử dụng đường ống nội dung, do đó tệp js tùy chỉnh cần phải đi vào thư mục app/assets/javascript. Hơn cả bạn thậm chí sẽ không cần tải tệp trong chế độ xem của bạn.

nhưng tùy theo câu hỏi của bạn.

Để phục vụ các tập tin từ thư mục công cộng, bạn sẽ cần phải kích hoạt một cấu hình thiết

config.serve_static_assets = true 

Bạn muốn thường đặt điều này trong một trong các bạn file cấu hình môi trường.

+1

Lưu ý rằng việc sử dụng đường ống nội dung có nghĩa là bạn không thể chuyển các biến ruby ​​đến javascript từ trình điều khiển của bạn, bởi vì các js đã được biên dịch trước khi các biến đó chưa được xác định. – JosephK

1

Để tập tin máy chủ từ thư mục công cộng làm trên thiết lập và nhấn

config.serve_static_assets = true 
<script src="/javascripts/test.js" type="text/javascript" /> 
1

bạn không sử dụng công cộng. Công khai là thư mục gốc của máy chủ.

Máy chủ sẽ tìm tệp ở nơi công cộng, sau đó cố gắng định tuyến tệp thông qua bộ định tuyến của bạn nếu không tìm thấy kết quả phù hợp.

Bạn cũng có thể muốn xem xét sử dụng trình trợ giúp javascript_include_tag nếu bạn đang sử dụng đường dẫn nội dung.

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