2015-07-07 22 views
6

Tôi hỏi điều này bởi vì một vài lần bây giờ, tôi đã cố gắng chơi xung quanh với lệnh $locationProvider.html5Mode(true) cùng với <base href="/"> và gặp rất nhiều lỗi khi gọi tập lệnh/kiểu/hình ảnh cho dự án của tôi. Tôi đoán có phải là một cái gì đó tôi đang làm sai, nhưng có một cấu trúc thư mục nhất định bạn nên làm theo để bạn không chạy vào các lỗi này? Hay có cách nào cụ thể mà các công việc base href hoạt động mà tôi không hoàn toàn hiểu?

Gần đây, tôi nghĩ tôi sẽ thử trên một ứng dụng rất nhỏ. Đó là hiệu quả một trang web tĩnh, nhưng tôi muốn tận dụng lợi thế của định tuyến của Angular để đảm bảo tất cả các trang có thể tải ngay lập tức. Vì vậy, cấu trúc của tôi sẽ là một cái gì đó như thế này:

my-project 
    css 
    images 
    js 
     angular 
      app.js 
      app.routes.js 
      mainCtrl.js 
    views 
     home.html 
     about.html 
     contact.html 
    index.html 

Vì vậy, tôi biết rằng cấu trúc thư mục này là không lớn, nhưng tôi sẽ chỉ sử dụng góc trong dự án này cho việc định tuyến, không có gì hơn, do đó nó phù hợp với nhu cầu của tôi .

tôi đặt vào đầu <base href="/">, đưa vào cơ thể ng-appng-controller, và bên trong cơ thể đặt một <div ng-view> đâu đó quá.

Tôi đã thêm trong số $locationProvider.html5Mode(true) và dùng thử ứng dụng. Tất cả các tập lệnh của tôi sau đó được tải là http://localhost:8888/script.js không chính xác. Dự án nằm trong một thư mục để index.html nằm ở http://localhost:8888/my-project/index.html. Vì vậy, cần tải các tập lệnh từ http://localhost:8888/my-project/js/angular/app.js chẳng hạn.

Có điều gì đó mà tôi không hiểu về base href không? Cuối cùng tôi có thể lưu trữ ứng dụng này một nơi nào đó trực tuyến, vì vậy tôi muốn các URL để tập lệnh vv cho tất cả có liên quan đến tập tin thực sự. Ai có ý tưởng gì không?

Được rồi, vì vậy trên thẻ base href tôi sẽ có phong cách CSS của tôi mà sẽ được liên kết như css/style.css và ở dưới cùng của body thẻ của tôi, tôi sẽ có kịch bản của tôi nạp như js/init.js hoặc js/angular/app.js ví dụ. Điều này sẽ cố gắng tải nó như thể thư mục js được đặt trực tiếp tại localhost:8888/js.

+0

Có vẻ như bạn cần '' – Phil

+1

'base href' không chỉ là một cuộc gọi góc mà còn cho tất cả các liên kết tương đối của bạn bắt đầu từ đâu. Trường hợp các tập tin js của bạn được tải từ không nên có bất cứ điều gì để làm với định tuyến góc của bạn mặc dù. Làm thế nào bạn tải chúng và bạn đang đặt cơ sở href ở đâu? – Jan

+0

Bạn có thể hiển thị ví dụ về tệp 'index.html' của mình, cụ thể là các thẻ'

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